Based on 1.11.2 decompiled using MCP 9.35 rc1
The bug
The method net.minecraft.world.WorldEntitySpawner.findChunksForSpawning(WorldServer, boolean, boolean, boolean)
which spawns mobs in the world and the method net.minecraft.tileentity.MobSpawnerBaseLogic.updateSpawner()
which spawns a mob for a mob spawner call the method net.minecraft.entity.EntityLiving.isNotColliding()
before calling the method net.minecraft.entity.EntityLiving.onInitialSpawn(DifficultyInstance, IEntityLivingData)
, which can make a mob be a baby. This makes it impossible for baby mobs to spawn in smaller spaces.
Note: Fixing this might break existing mob farms.
How to reproduce
Create a Superflat world with the following preset
minecraft:stone,minecraft:air,minecraft:glass;minecraft:plains;
Set the time to night
/time set 14000
Use the
/say
command to list all zombies/say @e[type=zombie]
→ It won't find any zombies even though baby zombies would have enough space to spawn
is still in 20w18a