Development resources

Map File Format
Each edition of Minecraft uses its own file format to store levels. The following information about the different level file formats can be used by software developers to create map editors, servers, level generators, and other programs. Blocks, items and data values are common to all map types.

Map Formats

 * Classic Level Format used by the old Minecraft Classic: Survival, Creative, and Multiplayer.
 * Indev Level Format used by Minecraft Indev.
 * Alpha Level Format used by Minecraft Alpha (previously Infdev).
 * Beta Level Format used by Minecraft Beta (from 1.3).

Notch's notes on NBT format files.

Schematic files based on NBT format are used by a few 3rd party utilities to store sections of a map for later use.

Libraries

 * Java Classes to read and write Classic Maps
 * Java Class to read and write NBT structures
 * C library to read and write NBT structures
 * Python library to read and write NBT structures
 * Python library to load and edit Alpha worlds
 * OpenCraft IO, JNBT, and Model libraries to handle everything

Mod Creation Tools

 * Minecraft Coder Pack used to create and edit mods to both the Minecraft client and server
 * Techne used to generate Java files with model information in them, used to create custom models for in game use. Preview release only right now.
 * FMCModeler can be used to create custom models for in game use, can also create models from Java code (with some restrictions). Written in Flash.

Server Protocol
Classic Server Protocol used by the Minecraft Classic Creative Multiplayer server.

For info on Minecraft Alpha, see the wiki.vg Alpha portal, here.