So i manage to figure out how to do this for my own mod before you had posted this.
A few resources i referenced for this are:
the update primer here at this link.
more specifically this subsection about worldgen.
the Biomes O Plenty github.
For my implementation, i had this class which is referenced from my main mod class from inside setup
public class NetherGeneration {
public static void SetupNetherGeneration() {
Biomes.NETHER.addFeature(
Decoration.UNDERGROUND_DECORATION,
Biome.createDecoratedFeature(
Feature.BUSH,
new BushConfig(ModBlocks.PETRIBARK_MUSHROOM.getDefaultState()),
Placement.CHANCE_RANGE,
new ChanceRangeConfig(0.5F, 0, 0, 128)));
Biomes.NETHER.addFeature(
Decoration.UNDERGROUND_DECORATION,
Biome.createDecoratedFeature(
Features.CLAYCACOON_BLOB,
IFeatureConfig.NO_FEATURE_CONFIG,
Placement.LIGHT_GEM_CHANCE,
new FrequencyConfig(10)));
Biomes.NETHER.addFeature(
Decoration.UNDERGROUND_DECORATION,
Biome.createDecoratedFeature(
Features.CLAYCACOON_BLOB,
IFeatureConfig.NO_FEATURE_CONFIG,
Placement.COUNT_RANGE,
new CountRangeConfig(10, 0, 0, 128)));
}
}
So we have three different features here which are respectively
mushrooms which generate similiar to how brown mushrooms generate in the nether
a Clay Cacoon Blob feature with a frequency based placement; which when paired with the
other Clay Cacoon Blob feature, mimics the placement and rarity of glowstone
Unfortunately there isn't documentation on what each placement does and what all the respective config classes are/what they are capable of, so your best bet is to check net.minecraft.world.gen.feature and net.minecraft.world.gen.placement to get a better idea. You can also see how they are used in net.minecraft.world.gen.biome classes