We came up with the solution to replace mobs that are spawned by Minecraft with our custom mobs. When a mob is spawning, an extended flow of conditions will execute. Based on the outcome of the condition, we might replace the original mob with a custom mob or keep the mob that was originally spawned.