The bug
Baby ocelots spawned naturally prevent the parent ocelot from spawning.
Note: This bug is currently blocked by MC-103516 which allows the parent ocelot to spawn.
How to reproduce
Create a Superflat world with the following preset
70*minecraft:stone,minecraft:grass_block;minecraft:jungle;Note: The 70 layers of stone are required because ocelots only spawn above sea level.
Setup a repeating command block and two chain command blocks behind it with the following commands
/execute as @e[type=!player] if entity @s[type=!ocelot] run kill/execute as @e[type=ocelot] run data modify entity @s NoAI set value 1b/execute as @e[type=ocelot,nbt={Age:-24000}] run data modify entity @s Glowing set value 1bMove around and look at the naturally spawned baby ocelots
→ You will notice that they are always spawned without parent
Code analysis
Outdated
Based on 1.11.2 decompiled using MCP 9.35 rc1
The problem is that the method net.minecraft.entity.passive.EntityOcelot.onInitialSpawn(DifficultyInstance, IEntityLivingData) spawns the baby ocelots at the same position the parent ocelot would spawn. Because of that the parent would collide with them and is therefor not spawned.
Linked issues
relates to 2
Comments 2
The behavior is reversed now, see MC-161144
Is this still the case? MC-103516 was fixed and baby spawning changed somewhat recently