Resolution: Works As Intended
Starting with 20w18a some mobs do not count to the mob cap anymore if they are a passenger (e.g. riding a minecart).
The following mobs are not affected:
- Mobs which can be part of a raid (e.g. witch)
- Open the debug screen (F3)
The following steps refer to the "M:" ("Monster") mob category shown in the line starting with "SC:" on the left below "Local difficulty:" and above "Sounds:".
- Spawn a husk
The husk is counted for the "Monster" category
- Spawn a husk riding a minecart
The husk is not counted
- Destroy the minecart
Now the husk is counted
20w19a, Mojang names
In 20w18a net.minecraft.world.entity.Mob.requiresCustomPersistence() was changed to return whether the mob is a passenger instead of always returning false. This might have been done to fix
MC-178013, since this method is also used to determine whether a mob can despawn, but has the probably unintended side-effect described in this bug report.
Additionally it is not consistent whether passenger mobs count to the mob cap, because the classes overriding requiresCustomPersistence() do not consider the parent result.