Learn · mappings

What Are Minecraft Mappings? Explained

Minecraft mappings are name tables that turn obfuscated code like a.b.c into readable names so mods and clients can read and hook the game.

TRtrol5 min read

What are Minecraft mappings?

Minecraft mappings are translation tables that pair the game's obfuscated symbols with human-readable names. The retail build ships with classes, methods, and fields renamed to tiny meaningless strings such as a, bk, or c.d.e. A mapping set like MCP, Yarn, or Mojang mappings overlays real names on top of that mess so a developer can read the code and hook into it.

Without a mapping, the game is technically open but practically illegible. Apply one and a field labeled field_71090_bL reads as something like experienceLevel, and the whole codebase suddenly looks like normal software.

Why does Minecraft need mappings at all?

Mappings exist because Mojang obfuscates Minecraft before every release. The build step rewrites every class and member down to short tokens. That trims the jar a little, but mostly it makes the code hard to follow. That is the wall every mod and client has to get past.

A mapping is the key to that wall. It is a one-to-one list: obfuscated name on the left, readable name on the right. Apply it across the game and the scrambled jar turns back into a workable source tree.

The three mapping sets you will hear about

There are many mapping projects, but three dominate the conversation. Each belongs to a different era and a different owner.

MCP (Mod Coder Pack)

MCP is the community mapping that powered modding before 1.14. It ran on two layers. The Searge project generated stable but unattractive intermediate names such as func_70071_h_, and MCP then dressed those in friendly names like onUpdate. Most older 1.8.9 standalone clients still compile against an MCP-mapped tree and aim their reflection at the MCP or Searge names.

Yarn

Yarn is the open mapping maintained by FabricMC for the Fabric ecosystem. It is community-written, freely licensed, and tends to update fast when a new Minecraft version lands. That quick turnaround is a big part of why Fabric mods reach new versions early.

Mojang mappings

Mojang mappings, often shortened to Mojmap, are Mojang's own official names, published next to every release since 1.14.4. Because they come straight from the source, the names line up with what Mojang's developers actually call things. They have effectively replaced MCP and Searge as the default starting point for any modern client.

MCP vs Yarn vs Mojang mappings

The quick version: MCP is the legacy toolchain, Mojang mappings are the official replacement, and Yarn sits between them as the open community set most Fabric projects use. Here is how the three compare on the points that matter.

MCPYarnMojang mappings
Maintained byCommunity (Searge + MCP)FabricMCMojang
EraPre-1.14 (1.7 to 1.12)1.14 onward1.14.4 onward
OriginCommunity-derivedCommunity-derivedFirst-party official
Typical useLegacy clients, old moddingFabricFabric, Forge, NeoForge
StatusRetired in favor of MojmapActiveActive default

How mappings fit into a mod toolchain

Mappings do their work at compile time, never at runtime. The build tool takes the obfuscated game, runs the mapping over it, and hands the developer a readable copy to write against. When the mod is finished, the toolchain remaps it back so its references line up with the obfuscated names sitting in the player's actual jar.

Loaders approach this differently. Fabric builds against Yarn or a Mojang-mapped base depending on the project. Forge historically split the work, reading code through one mapping while running against another. The licensing on Mojang mappings is permissive enough to use at build time, which is why most current toolchains lean on it.

Intermediary: the layer that keeps mods stable

There is a fourth name worth knowing. Intermediary is a stable middle layer Fabric uses so that a compiled mod keeps working even when the readable mappings change. The readable names (Yarn or Mojmap) sit on top for humans, while Intermediary stays constant underneath for the running game. Searge filled the same role in the MCP world. The idea is simple: a fixed layer for the binary, a friendly layer for the developer.

FAQ

Get Terminus

Built to track Minecraft's mappings so its modules keep working across versions.