Regarding changes in this function in general - I'd prefer to do error checking somewhere else.
Reasons:
- multiple purposes - this function both load data, test it for integrity and trying to generate valid values. Splitting it into loadConfig() and validateConfig() would be better.
- arbitrary default values - why there are 16 max heroes per player? There were no such limit in H3 at all. Why creep size limit is 4k? Why you're checking only half of values? Checks like this should be made external. Json schema would work nicely here.
- do we really need to try to generate some acceptable data? IMO we should keep same behavior as in rest of modding system - warn player but keep going if possible.

For now it may be better to revert all changes but addition of new fields and add these checks as separate push request. (preferably - via json schema)