Program: 166022
Project: 166022
Buggy source:
private void setupFromNBT(NBTTagCompound tagCompound){
  terrainType=TerrainType.values()[tagCompound.getInteger("String_Node_Str")];
  featureTypes=toEnumSet(getIntArraySafe(tagCompound,"String_Node_Str"),FeatureType.values());
  structureTypes=toEnumSet(getIntArraySafe(tagCompound,"String_Node_Str"),StructureType.values());
  effectTypes=toEnumSet(getIntArraySafe(tagCompound,"String_Node_Str"),EffectType.values());
  biomes.clear();
  for (  int a : getIntArraySafe(tagCompound,"String_Node_Str")) {
    biomes.add(BiomeGenBase.getBiome(a));
  }
  if (tagCompound.hasKey("String_Node_Str")) {
    controllerType=ControllerType.values()[tagCompound.getInteger("String_Node_Str")];
  }
 else {
    if (biomes.isEmpty()) {
      controllerType=ControllerType.CONTROLLER_DEFAULT;
    }
 else {
      controllerType=ControllerType.CONTROLLER_SINGLE;
    }
  }
  digitString=tagCompound.getString("String_Node_Str");
  forcedDimensionSeed=tagCompound.getLong("String_Node_Str");
  worldVersion=tagCompound.getInteger("String_Node_Str");
  baseBlockForTerrain=getBlockMeta(tagCompound,"String_Node_Str");
  tendrilBlock=getBlockMeta(tagCompound,"String_Node_Str");
  sphereBlock=getBlockMeta(tagCompound,"String_Node_Str");
  liquidSphereBlock=getBlockMeta(tagCompound,"String_Node_Str");
  liquidSphereFluid=(Block)Block.blockRegistry.getObjectById(tagCompound.getInteger("String_Node_Str"));
  canyonBlock=getBlockMeta(tagCompound,"String_Node_Str");
  fluidForTerrain=(Block)Block.blockRegistry.getObjectById(tagCompound.getInteger("String_Node_Str"));
  readOresFromNBT(tagCompound);
  readFluidsFromNBT(tagCompound);
  peaceful=tagCompound.getBoolean("String_Node_Str");
  shelter=tagCompound.getBoolean("String_Node_Str");
  if (tagCompound.hasKey("String_Node_Str")) {
    celestialAngle=tagCompound.getFloat("String_Node_Str");
  }
 else {
    celestialAngle=null;
  }
  if (tagCompound.hasKey("String_Node_Str")) {
    timeSpeed=tagCompound.getFloat("String_Node_Str");
  }
 else {
    timeSpeed=null;
  }
  probeCounter=tagCompound.getInteger("String_Node_Str");
  actualRfCost=tagCompound.getInteger("String_Node_Str");
  skyDescriptor=new SkyDescriptor.Builder().fromNBT(tagCompound).build();
  calculateCelestialBodyDescriptors();
  extraMobs.clear();
  NBTTagList list=tagCompound.getTagList("String_Node_Str",Constants.NBT.TAG_COMPOUND);
  for (int i=0; i < list.tagCount(); i++) {
    NBTTagCompound tc=list.getCompoundTagAt(i);
    String className=tc.getString("String_Node_Str");
    int chance=tc.getInteger("String_Node_Str");
    int minGroup=tc.getInteger("String_Node_Str");
    int maxGroup=tc.getInteger("String_Node_Str");
    int maxLoaded=tc.getInteger("String_Node_Str");
    Class<? extends EntityLiving> c=null;
    try {
      c=(Class<? extends EntityLiving>)Class.forName(className);
    }
 catch (    ClassNotFoundException e) {
      throw new RuntimeException(e);
    }
    MobDescriptor mob=new MobDescriptor(c,chance,minGroup,maxGroup,maxLoaded);
    extraMobs.add(mob);
  }
}

Fixed version (ground truth):
private void setupFromNBT(NBTTagCompound tagCompound){
  terrainType=TerrainType.values()[tagCompound.getInteger("String_Node_Str")];
  featureTypes=toEnumSet(getIntArraySafe(tagCompound,"String_Node_Str"),FeatureType.values());
  structureTypes=toEnumSet(getIntArraySafe(tagCompound,"String_Node_Str"),StructureType.values());
  effectTypes=toEnumSet(getIntArraySafe(tagCompound,"String_Node_Str"),EffectType.values());
  biomes.clear();
  for (  int a : getIntArraySafe(tagCompound,"String_Node_Str")) {
    biomes.add(BiomeGenBase.getBiome(a));
  }
  if (tagCompound.hasKey("String_Node_Str")) {
    controllerType=ControllerType.values()[tagCompound.getInteger("String_Node_Str")];
  }
 else {
    if (biomes.isEmpty()) {
      controllerType=ControllerType.CONTROLLER_DEFAULT;
    }
 else {
      controllerType=ControllerType.CONTROLLER_SINGLE;
    }
  }
  digitString=tagCompound.getString("String_Node_Str");
  forcedDimensionSeed=tagCompound.getLong("String_Node_Str");
  baseSeed=tagCompound.getLong("String_Node_Str");
  worldVersion=tagCompound.getInteger("String_Node_Str");
  baseBlockForTerrain=getBlockMeta(tagCompound,"String_Node_Str");
  tendrilBlock=getBlockMeta(tagCompound,"String_Node_Str");
  sphereBlock=getBlockMeta(tagCompound,"String_Node_Str");
  liquidSphereBlock=getBlockMeta(tagCompound,"String_Node_Str");
  liquidSphereFluid=(Block)Block.blockRegistry.getObjectById(tagCompound.getInteger("String_Node_Str"));
  canyonBlock=getBlockMeta(tagCompound,"String_Node_Str");
  fluidForTerrain=(Block)Block.blockRegistry.getObjectById(tagCompound.getInteger("String_Node_Str"));
  readOresFromNBT(tagCompound);
  readFluidsFromNBT(tagCompound);
  peaceful=tagCompound.getBoolean("String_Node_Str");
  shelter=tagCompound.getBoolean("String_Node_Str");
  if (tagCompound.hasKey("String_Node_Str")) {
    celestialAngle=tagCompound.getFloat("String_Node_Str");
  }
 else {
    celestialAngle=null;
  }
  if (tagCompound.hasKey("String_Node_Str")) {
    timeSpeed=tagCompound.getFloat("String_Node_Str");
  }
 else {
    timeSpeed=null;
  }
  probeCounter=tagCompound.getInteger("String_Node_Str");
  actualRfCost=tagCompound.getInteger("String_Node_Str");
  skyDescriptor=new SkyDescriptor.Builder().fromNBT(tagCompound).build();
  calculateCelestialBodyDescriptors();
  extraMobs.clear();
  NBTTagList list=tagCompound.getTagList("String_Node_Str",Constants.NBT.TAG_COMPOUND);
  for (int i=0; i < list.tagCount(); i++) {
    NBTTagCompound tc=list.getCompoundTagAt(i);
    String className=tc.getString("String_Node_Str");
    int chance=tc.getInteger("String_Node_Str");
    int minGroup=tc.getInteger("String_Node_Str");
    int maxGroup=tc.getInteger("String_Node_Str");
    int maxLoaded=tc.getInteger("String_Node_Str");
    Class<? extends EntityLiving> c=null;
    try {
      c=(Class<? extends EntityLiving>)Class.forName(className);
    }
 catch (    ClassNotFoundException e) {
      throw new RuntimeException(e);
    }
    MobDescriptor mob=new MobDescriptor(c,chance,minGroup,maxGroup,maxLoaded);
    extraMobs.add(mob);
  }
}