--- a/net/minecraft/world/level/ServerLevelAccessor.java
+++ b/net/minecraft/world/level/ServerLevelAccessor.java
@@ -7,6 +_,17 @@
     ServerLevel getLevel();
 
     default void addFreshEntityWithPassengers(Entity entity) {
-        entity.getSelfAndPassengers().forEach(this::addFreshEntity);
-    }
+        // CraftBukkit start
+        this.addFreshEntityWithPassengers(entity, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.DEFAULT);
+    }
+
+    default void addFreshEntityWithPassengers(Entity entity, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason reason) {
+        entity.getSelfAndPassengers().forEach((e) -> this.addFreshEntity(e, reason));
+    }
+
+    @Override
+    default ServerLevel getMinecraftWorld() {
+        return this.getLevel();
+    }
+    // CraftBukkit end
 }
