When loading old chunks in an infinite world to new height limit, cave biomes below y=0 place features (dripstone, moss, etc.) but are overwritten by old surface biome.
Steps to Reproduce:
Upgrade world from before 1.18 Caves and Cliffs Part 2
Go underneath old chunks and find a cave biome
Wait for biome exclusive mobs to spawn, (axolotls or tropical fish in lush caves, drowned in dripstone caves under land biomes) killing other mobs to free mob cap.
Observed Results:
Axolotls, tropical fish, and drowned do not naturally spawn.
Expected Results:
The aforementioned mobs spawn in their appropriate biomes.
Notes:
Lush and dripstone caves under old chunks will appear to be added, however spawning rules and biome tinting are the same as surface biomes. Returning players may be confused when cave biomes in upgraded chunks behave like surface biomes, especially mushroom fields. Attached are two example locations in the provided 1.17 world that I tested upgrading on Windows 10 and iOS.
As of 1.19.0: Newer cave biomes are not currently affected because only lush and dripstone caves can be found under old chunks. Feedback about what biomes should generate under old chunks is not within the scope of this bug report.
Related issues
is duplicated by
relates to
Attachments
Comments


I am playing on an Xbox One and have recently upgraded a world originally generated in 1.17. I was originally delighted to find the area below Y0 just below my main base (which is in a plains biome) spawned with several smaller caves that have all the traits of being a lush cave with several clay water pools, glowberries, drip leafs, moss blocks, and moss carpet blocks. However, no tropical fish or axolotls have spawned either in the natural pools or other pools that I have made in these caves. I have had a glow squid spawn on a copy of the world that I put into creative, but none have spawned in the survival copy as yet after several day/night cycles working within an appropriate spawn distance. This certainly sounds like this reported issue could be the problem in my world as well. (NOTE: I have managed to both spawn and breed several axolotls in my 1.18-created world in similarly constructed water pools that I have made within a lush cave there; so this issue does appear to be related to the upgrading of a 1.17 world to 1.18.)
ETA: I have played several more Minecraft days near the above-mentioned water pools in Survival mode. Several glow squid have now spawned now that I have much of the area sufficiently lit to suppress spawns of creepers, skeletons, etc. Still no tropical fish or axolotls despite the terrain below Y0 clearly showing that the biome should be a rather large lush cave one (lots of clay, moss, glowberries, drip leaf, and spore blossoms having been generated in several small to medium-size caves when the world was updated from 1.17 to 1.18). The only thing different from a 1.18 luch cave is is that there is not a huge cave in the area - possibly because the terrain above Y0 was already formed in 1.17.
ETA2: I have also just now recreated my seed in 1.18 (in creative mode) and confirmed that the area is also a lush cave biome that extends both above and below Y0. I see no reason why tropical fish and axolotls are not spawning in my upgraded 1.17 world.
ETA3: This particular file save has since become corrupted and is unplayable (i.e. will not load and will not even allow me to delete it from the console).,

A different world is needed to test if this also affects the new Deep Dark biome. (Asking the moderators) Would it be acceptable to use a Java 1.17 world converted using Chunker and then upgrade to 1.19+ in-game?
Edit: This does not affect the Deep Dark on both Java and Bedrock. Old chunks are upgraded to 1.18 "Caves and Cliffs Part 2" first and do not generate newer biomes.

Can confirm a lush cave is not spawning axolotls and a water tank built under stone under y=30 in an old chunk is not spawning glow squid. Also overworld mobs are spawning in ancient cities. 1.19.2

Glow squid do not have a biome requirement so are not included in this report. Drowned do not spawn in dripstone caves at all due to a separate bug (MCPE-144066). The reported issue here can only be tested with respect to axolotl and tropical fish.
When testing, it's important to also keep in mind that mobs spawn on the NW corners of blocks, so they need at least a 2x2 area free of solid blocks to be able to spawn. In other words, don't expect to see fish or axolotl in 1x1 water holes or 1-wide water trenches (MCPE-99315).