Minecraft Bedrock Biome IDs and What They're Called Now

The game calls that snow-covered pine forest a Snowy Taiga. Bedrock’s own files call it cold_taiga, and cold_taiga is what /locate biome wants you to type. The name on screen changed years ago. The name in the data never did.

Every biome that existed before Mojang started renaming things kept its original ID, permanently. Renaming an ID would break saved worlds, commands, and add-ons, so Mojang changed the label and left the identifier alone. That’s why the biome pages here are titled with names you may not recognize. They come straight out of the behavior pack.

The renames worth knowing

Bedrock IDWhat the game calls it
ice_plainsSnowy Plains
ice_plains_spikesIce Spikes
cold_taigaSnowy Taiga
cold_beachSnowy Beach
extreme_hillsWindswept Hills
extreme_hills_mutatedWindswept Gravelly Hills
extreme_hills_plus_treesWindswept Forest
stone_beachStony Shore
mesaBadlands
mesa_bryceEroded Badlands
mesa_plateau_stoneWooded Badlands
mega_taigaOld Growth Pine Taiga
redwood_taiga_mutatedOld Growth Spruce Taiga
birch_forest_mutatedOld Growth Birch Forest
roofed_forestDark Forest
swamplandSwamp
jungle_edgeSparse Jungle
savanna_mutatedWindswept Savanna
mushroom_islandMushroom Fields
hellNether Wastes

hell is the oldest survivor on that list. The Nether has had a real name since 2011 and the biome ID never caught up.

_mutated means the rare variant

Before the modern naming, every unusual version of a biome was a “mutated” one. Bedrock still tags them that way, so savanna_mutated is the Windswept Savanna with its stone spikes, and birch_forest_mutated is the Old Growth Birch Forest with the tall trees. Same biome you know, older label.

Some of them are just gone. The 1.18 world generation rewrite dropped a pile of variants from new worlds, and desert_mutated (Desert Lakes) and cold_taiga_mutated (Snowy Taiga Mountains) are two of the casualties. Their files still ship with the game and yapdb still has pages for them, because old worlds still contain them and the definitions still load. You won’t find one in a world you started this year.

_hills is mostly history

The same rewrite retired the _hills family. desert_hills, forest_hills, taiga_hills, and the rest were the old way of making terrain rise: a parallel biome that a chunk swapped to at higher elevation. Modern generation shapes terrain independently of biome, so the hill variants stopped being needed and stopped generating.

They still show up in the data, and they still show up in worlds carried forward from before 1.18. legacy_frozen_ocean is the clearest case of this: a biome kept in the files purely so worlds that predate the ocean update keep rendering correctly.

Anything recent uses its real name

The pattern breaks cleanly at the point Mojang settled on modern naming. cherry_grove, deep_dark, mangrove_swamp, lush_caves, pale_garden, and sulfur_caves all read exactly like what they are. So the ID tells you roughly when a biome was added. Weird name, it’s old. Obvious name, it’s new.

Where the IDs actually matter

Commands take the ID, not the display name. /locate biome minecraft:cold_taiga finds the nearest Snowy Taiga. Typing snowy_taiga gets you nothing on Bedrock. Same for /fill-style world edits through add-ons, biome filters in spawn rules, and anything in a behavior pack.

Spawn rules are the quiet failure case. An add-on that filters on a biome name copied off a wiki page matches nothing at all, and the pack still loads without complaining. The ID is the only spelling the game reads.