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.