When the minimum height for the world is set lower than the minimum height for the noise generator, noise cave generation acts as though it thinks it can still generate below bedrock, even though it can't, as in the image below:
Note that this is with the bedrock offset set to 0, so it's not as if the bedrock is generating above where it should. The code that rounds off caves before they reach bedrock should respond to the minimum height of the noise generator, not the minimum height of the world as a whole. Prior to the addition of noise caves and the lowering of the world height, the old cave carvers generated identically between this custom worldgen and vanilla worldgen, which is clearly not the case with these new noise caves.
EDIT: Skeleton structures will also spawn below bedrock with these settings; not sure if this is intended or not.
EDIT 2: It appears this bug occurs even if both the minimum heights for the world and the noise generator are the same but lower than in vanilla (i.e. both -128), so I'm not sure what's causing it.
HOW TO REPRODUCE
- Generate a world using belowBedrockTest.json, or create your own custom worldgen file where the minimum world height is lower than the minimum generator height.
- Navigate to an area where a cave intersects the bedrock layer. The above screenshot was taken at 270/-40/-157 using the worldgen settings above.