There are a lot of comportment we can expect. And the implementation really depends on what we want to do.
I assumed that
this page describe the algorithm we want to implement in the end.
That is much more complicated that just rates. And I won't do everything in a single row of course. But at least, that confirms that we :
- We first determine mob mega-type (hostile / passive / ambiant / water)
- We then pick up location (through complicated rules)
- We finally pick up mob type (depending on location, light, biome ...)
What I suggest for the interaction with the world.ini configuration, is to impact the final step. Additionally we will use a shortcut to make no test at all for mega-type if no type at all is allowed in the world (typically : no hostile or no water).
One of the worse consequences would be that, de-activating all Passive mobs but one would conduct to an overspawning of this one. The alternative would be : almost no spawn.
Maybe we should split this thread in 2.