Is there anything to stop the core devs saying we want unlimited bitcoin and changing the code to allow it. I mean, 21 million isn't much.

Bitcoin is a digital currency that became popular in 2013. This currency is not controlled by banks or other institutions.
But
it is controlled by the devs that write the code that implements it. Don't kid yourself it came out of thin air and magically looks after itself. All a fork is, is someone who writes the code thinking they have a better way of doing it.
They manage the code but nothing is implemented without consensus so their "control" has a check at the moment.
Code changes are very slow and methodical at the moment. There is a reason for that.
That is why BCH and BSV went on their own way, they wanted bigger blocks and the 'core' could not come to an agreement.