Talk:Alpha level format

From Minecraft Wiki
Jump to: navigation, search

!I've restored this page from a google cache. it needs to be checked for lost formatting and broken/missing links Eminence –The preceding undated comment was added on 01:55, 20 August 2010. Please sign your posts with ~~~~

"due to the sheer size of the map (several times the surface area of the Earth)." Can someone explain what this is refering to? The map has a potential of reaching TB sizes, no doubt. Anyhow the surface of the Earth (refering to our reallife planet) is about 510 million km² (source If you think of a block in minecraft to be 1 m² that would make 510 billion blocks. There is no way for minecraft to reach as many blocks as just once "the surface area of the Earth"... If this refers to the surface of the explored map itself then please rephrase it. There is no "the Earth" in Minecraft. happymoep

Alpha maps support 64 million blocks in both directions (or 64,000km if we want to talk about square-footage in square kilometers). 64000km*64000km = 4,096,000,000km², or 4,096 million km², which is, indeed, several times the surface area of the Earth. Xolotl 13:42, 1 November 2010 (CDT)

235 Petabytes[edit]

I'm not sure where you got the 235 petabyte value for maximum map size. Care to show your work? Here's mine.

The limits of the X and Z dimensions are plus and minus 32 million. Discover this by examining the game's code. The level is 64 million blocks wide. Calculate the volume: 64M * 64M * 128 = 524288 * M * M or about 524 petablocks. Each block requires 2.5 bytes to store, making the total around 1.2 yottabytes.

Does not include entities, chests contents, or etc - A level containing only fully packed chests will take some thousand of yottabytes to store.

Besides, the maximum file size is a pretty useless thing to know. It's probably more useful to put the +/- 32 million figure there instead.

–Preceding unsigned comment was added by Codewarrior (Talk|Contribs) 08:06, 12 September 2010. Please sign your posts with ~~~~

Tile entity details[edit]

I just added a few more details to tile entities like sign text and chest contents - I'm not that much of a documenter or wiki-guru, so I'd be happy if someone could make it a bit more "wiki-like" :) --Flippeh 21:01, 14 September 2010 (CDT)

I think you'll be glad to see the work I've done on Chunk format ;) LB 16:04, 3 July 2012 (UTC)

Must Index chunks?[edit]

Not sure but I think maybe the folders or something don't match the xpos/zpos calculation. So I scanned the dirs and read the xPos zPos out of the chunks. Or maybe I was just trying to load non-existent chunks. –Preceding unsigned comment was added by Ithkuil (Talk|Contribs) 15:27, 18 October 2010. Please sign your posts with ~~~~


Need info on the .dat files per player, what format is that in? –Preceding unsigned comment was added by Ratty (Talk|Contribs) 02:59, 26 November 2010. Please sign your posts with ~~~~

See the "Player" compound of a level.dat –Preceding unsigned comment was added by Codewarrior (Talk|Contribs) 06:17, 26 November 2010. Please sign your posts with ~~~~

Can't make sense of folder names[edit]

* The first folder name is base36(-13 % 64). This is base36(51) which is "1f".

How does that work? -13 % 64 does not equal 51. Then again, I can't comprehend how modulus even works with negative numbers. Can someone explain this further or point me to some PHP code to calculate this with negative numbers? Cheers. --Gnu32 17:26, 26 November 2010 (UTC)

That part confused me a lot as well when I was writing a plugin for the server. So I ended up looking at the decompiled code and found out that bitmasks are used for the folders. In Java, it looks like this:
public String getChunkName(int x, int y) {
	String name1 = Integer.toString(x, 36);
	String name2 = Integer.toString(y, 36);
	String subdir1 = Integer.toString(x & 0x3F, 36);
	String subdir2 = Integer.toString(y & 0x3F, 36);

	return String.format("%s/%s/c.%s.%s.dat", subdir1, subdir2, name1, name2);
The PHP implementation could be written like this:
function base36($value) {
	$string = '';

	if ($value < 0) {
		$string .= '-';

	$string .= base_convert((string)$value, 10, 36);
	return $string;

function getChunkName($x, $y) {
	$name1 = base36($x);
	$name2 = base36($y);
	$subdir1 = base36($x & 0x3F);
	$subdir2 = base36($y & 0x3F);

	return sprintf("%s/%s/c.%s.%s.dat", $subdir1, $subdir2, $name1, $name2);
It's probably better to rewrite that part in the article... --Barracuda 18:36, 26 November 2010 (UTC)
Aha, brilliant. In my code I used some modulus function which supports negatives but this code is even better and cleaner. Cheers bro. --Gnu32 13:12, 26 November 2010 (CST)

Chunk position[edit]

Well, one thing that might be worth mentioning is that chunk position (as encoded in filename) is actually world coordinates divided by 16. Yeah, seems obvious, but took me one hour to figure that out... Tpierron 20:40, 15 February 2011 (UTC)

Multiple Chunks with same xPos and zPos[edit]

I'm writing an NBT decoder in golang and i'm noticing that when decoding the chunks there are almost always multiple chunks with the same xPos and zPos. Particularly around xPos == 0 or zPos == 0. Is there something I'm missing? It also seems like the non-unique chunks aren't always around the origin's row and column either they occur elsewere as well.

-Bemasher 04:48, 11 December 2011 (UTC)

Move to Level Format[edit]

This page is titled "Alpha Level Format" and contains information for it, but also contains information for Beta and even Minecraft full release. Should the page be moved and updated, or should it be left and restore, with a new page taking its place? I vote for moving it to just "Level Format" and bringing it up to date. LB 02:45, 3 July 2012 (UTC)

Actually, upon seeing how this page is used, I think it should be restored for Alpha and that Level Format should be a new page from scratch. I am going to start the new page and work on restoring this page back to Alpha standards later. LB 00:29, 5 July 2012 (UTC)
It is done! LB 01:57, 5 July 2012 (UTC)
I've done a lot of restoring and am actually gathering information using a copy of Minecraft Alpha 1.2.6, and the page is already looking better. LB 09:48, 5 July 2012 (UTC)

is it possible to convert indev's .mclevel to alpha's level.dat[edit]

the title says it. –Preceding unsigned comment was added by (talk) at 16:32, 02 January 2015 (UTC). Please sign your posts with ~~~~

Conversion tools that do this already exist. It is worth noting that level.dat doesn't contain any of the map terrain. LB(T|C) 20:39, 2 January 2015 (UTC)

New world save type?[edit]

Hi all. So, I am involved in archiving old versions of Minecraft - unfortunately, I cannot give anyone these files, but we recently obtained a version of Infdev dated at June 24th, 2010, and it has a completely new level save format that has no information on it - while this probably won't be helpful, anyone interested in this should take a's a world I created using that version: 44trent2 (talk) 19:51, 23 May 2018 (UTC)

Personally, I'm far more interested in why you can share a world you created with this version, but you can't share the version itself. ディノ千?!? · ☎ Dinoguy1000 09:56, 24 May 2018 (UTC)
@Dinoguy1000: In most countries redistributing Minecraft assets, jars, or anything owned by mojang, is illegal, but in this case i believe it would be acceptable to share the version jar. 44trent2 please upload this version and link it aswell, assuming you actually have it. jjlr (talk) 11:10, 24 May 2018 (UTC)
@44trent2: This level.dat file was never used on any other versions before, but only that specific version. Neither .mclevel format or Alpha file format uses this format. This was the only version to have its own file format. skylord_wars (talk) 13:14, 24 May 2018 (UTC)
@Jjlrjjlr: Okay, here you go: June 24th Infdev should be there. --44trent2 (talk) 15:57, 6 June 2018 (UTC)