Minecraft wiki entry for Anvil_file_format, associated text: The 16×128×16 "Blocks", "Data", "SkyLight" and "BlockLight" tags were moved and repurposed. (see below)
A "Sections" List tag containing Compound tags has been added with up to 16 Compound tags.
Each section has 16×16×16 "Blocks", "Data", "SkyLight" and "BlockLight" tags.
Each section has a "Y" Byte tag saying which section it is (note that some Y positions can be skipped). 0 is at the bottom of the world and 15 is the topmost section.
Each section also has an optional "Add" tag, which is a DataLayer byte array just like "Data". The "Add" tag is not included in the converter since the old format never had block ids above 255. This extra tag is created whenever a block requires it, so the getTile() method needs to check if the array exists and then combine it with the default block data. In other words, blockId = (add << 8) + baseId.
Each chunk has a 16×16 byte array with biome IDs called "Biomes". If this array is missing it is filled when the game starts, as well any -1 values in the array. The converter source provided for developers doesn't include any biome sources, however.
Note that the old format is XZY ((x * 16 + z) * 16 + y) and the new format is YZX ((y * 16 + z) * 16 + x) (see the difference between DataLayer and OldDataLayer).
The new format uses the extension ".mca" instead of ".mcr" (the old format is kept for safety, with the level.dat backed up as "level.dat_mcr").
A new NBT tag type called IntArray was added to the NBT Format (With ID 11) and is used by the "Heightmap" tag.