--- a/net/minecraft/world/level/levelgen/structure/structures/MineshaftPieces.java
+++ b/net/minecraft/world/level/levelgen/structure/structures/MineshaftPieces.java
@@ -44,6 +44,10 @@
 import net.minecraft.world.level.storage.loot.LootTables;
 import org.slf4j.Logger;
 
+// CraftBukkit start
+import net.minecraft.nbt.NBTBase;
+// CraftBukkit end
+
 public class MineshaftPieces {
 
     static final Logger LOGGER = LogUtils.getLogger();
@@ -520,6 +524,8 @@
 
                         if (structureboundingbox.isInside(blockposition_mutableblockposition) && this.isInterior(generatoraccessseed, 1, 0, l, structureboundingbox)) {
                             this.hasPlacedSpider = true;
+                            // CraftBukkit start
+                            /*
                             generatoraccessseed.setBlock(blockposition_mutableblockposition, Blocks.SPAWNER.defaultBlockState(), 2);
                             TileEntity tileentity = generatoraccessseed.getBlockEntity(blockposition_mutableblockposition);
 
@@ -528,6 +534,9 @@
 
                                 tileentitymobspawner.setEntityId(EntityTypes.CAVE_SPIDER, randomsource);
                             }
+                            */
+                            placeCraftSpawner(generatoraccessseed, blockposition_mutableblockposition, org.bukkit.entity.EntityType.CAVE_SPIDER, 2);
+                            // CraftBukkit end
                         }
                     }
                 }
@@ -819,11 +828,11 @@
 
         public d(NBTTagCompound nbttagcompound) {
             super(WorldGenFeatureStructurePieceType.MINE_SHAFT_ROOM, nbttagcompound);
-            DataResult dataresult = StructureBoundingBox.CODEC.listOf().parse(DynamicOpsNBT.INSTANCE, nbttagcompound.getList("Entrances", 11));
+            DataResult<List<StructureBoundingBox>> dataresult = StructureBoundingBox.CODEC.listOf().parse(DynamicOpsNBT.INSTANCE, nbttagcompound.getList("Entrances", 11)); // CraftBukkit - decompile error
             Logger logger = MineshaftPieces.LOGGER;
 
             Objects.requireNonNull(logger);
-            Optional optional = dataresult.resultOrPartial(logger::error);
+            Optional<List<StructureBoundingBox>> optional = dataresult.resultOrPartial(logger::error); // CraftBukkit - decompile error
             List list = this.childEntranceBoxes;
 
             Objects.requireNonNull(this.childEntranceBoxes);
@@ -929,7 +938,7 @@
         @Override
         protected void addAdditionalSaveData(StructurePieceSerializationContext structurepieceserializationcontext, NBTTagCompound nbttagcompound) {
             super.addAdditionalSaveData(structurepieceserializationcontext, nbttagcompound);
-            DataResult dataresult = StructureBoundingBox.CODEC.listOf().encodeStart(DynamicOpsNBT.INSTANCE, this.childEntranceBoxes);
+            DataResult<NBTBase> dataresult = StructureBoundingBox.CODEC.listOf().encodeStart(DynamicOpsNBT.INSTANCE, this.childEntranceBoxes); // CraftBukkit - decompile error
             Logger logger = MineshaftPieces.LOGGER;
 
             Objects.requireNonNull(logger);
