--- a/net/minecraft/world/level/ServerLevelAccessor.java
+++ b/net/minecraft/world/level/ServerLevelAccessor.java
@@ -4,9 +4,21 @@
 import net.minecraft.world.entity.Entity;
 
 public interface ServerLevelAccessor extends LevelAccessor {
+
     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
 }
