--- a/net/minecraft/world/gen/feature/structure/Structure.java
+++ b/net/minecraft/world/gen/feature/structure/Structure.java
@@ -38,7 +38,7 @@
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
-public abstract class Structure<C extends IFeatureConfig> {
+public abstract class Structure<C extends IFeatureConfig> extends net.minecraftforge.registries.ForgeRegistryEntry<Structure<?>> implements net.minecraftforge.common.extensions.IForgeStructure {
    public static final BiMap<String, Structure<?>> field_236365_a_ = HashBiMap.create();
    private static final Map<Structure<?>, GenerationStage.Decoration> field_236385_u_ = Maps.newHashMap();
    private static final Logger field_208204_b = LogManager.getLogger();
@@ -237,13 +237,18 @@
    }
 
    public List<MobSpawnInfo.Spawners> func_202279_e() {
-      return ImmutableList.of();
+      return getSpawnList(net.minecraft.entity.EntityClassification.MONSTER);
    }
 
    public List<MobSpawnInfo.Spawners> func_214469_f() {
-      return ImmutableList.of();
+      return getSpawnList(net.minecraft.entity.EntityClassification.CREATURE);
    }
 
+   @Override
+   public final List<MobSpawnInfo.Spawners> getSpawnList(net.minecraft.entity.EntityClassification classification) {
+      return net.minecraftforge.common.world.StructureSpawnManager.getSpawnList(getStructure(), classification);
+   }
+
    public interface IStartFactory<C extends IFeatureConfig> {
       StructureStart<C> create(Structure<C> p_create_1_, int p_create_2_, int p_create_3_, MutableBoundingBox p_create_4_, int p_create_5_, long p_create_6_);
    }
