\documentclass{article}
\usepackage{listings}
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage{url}
\usepackage{pdfpages}
\usepackage{makecell}
\usepackage{tabularx}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{multirow}
\usepackage{array}

\title{Summary of the Biome Generation in \\ Minecraft 1.7 - 1.12}

\author{Cubitect}

\begin{document}
	
	\maketitle
	
	\begin{abstract}
		This document is designed to provide an overview of how Minecraft biome generation works and how we may efficiently find seeds with desired properties.
	\end{abstract}
	
	\newpage
	
	\tableofcontents
	
	
	
	\newpage
	
	
	\section{Biome Generator Layers}

	Minecraft biome generation occurs in layers. Many of these layers are chained together inside the generator, such that the output from one becomes the input for the next. A flowchart of this can be found on the next page.
	
	Each layer applies certain modifications to a map of integers, which change their use throughout the generation process. Initially the map only contains values 0 or 1, representing ocean or land masses. Later in the generator they represent temperature categories, until they are finally replaced by the actual biome IDs.
	
	Some of the layers resize the output of the previous layer. These Zoom-layers therefore change how much area is represented by a map entry. I will refer to this as "scale". For instance, 1:256 should be read as: one map entry ends up as an area of 256x256 blocks in the world.
	
	\setcounter{subsection}{-1}
	\subsection{Seed Finding}
	
	When constructing a seed finder, it may be useful to stop the generation at an earlier layer. For example if we require a swamp to be located near a given position, then we might want to generate up to layer 19: Biome first, and then check on a 1:256 scale if there is a swamp in the area. This is not enough to confirm that there will be a swamp at the given position, but we can rule out seeds that definitely don't have a swamp anywhere near the area. If the seed passes this cheap test, then we can go through the full expensive generation process and directly check the position for a swamp.
	
	Usually it is not practical to continue the search from a terminated generation and we have to start over again. The reason for this is that most layers require an additional 1 wide boarder from the previous layer, so the map sizes don't match up.
	
	Another more involved, but very powerful way of creating early knock-out criteria is to check if there is a some condition in the layer chain that is independent of the rest of the biomes. For instance in the case of finding a swamp, we can notice that there is a pseudo-random number check in layer 19: Biome, that converts Lush temperature climates to swamplands. However, the pseudo-random number generator is seeded by a combination of the position and the world seed, so we can make sure the random number output gives the required value without going through the rest of the layers. The more expensive generator can afterwards be used to make sure that a Lush climate is actually present at that position.
	
	
	In the summary below in sections 1.1 -- 1.44 I have laid out some of the properties of each layer, such as the scale of the layer and the possible values for the map entries with their respective average probability of occurrence (Note: these are estimates and may vary). When constructing a seed finder these values can be used as a reference to determine reasonable cut-off points for the generator.
	
	
	\includepdf[pages={1}]{layers.pdf}
	
	
	\subsection{Layer 1: Island}
	\begin{tabular}{|l|l|l|}\hline
		Scale: & \multicolumn{2}{|l|}{1:4096} \\\hline\hline
		Value  & Type   & Occurrence \\\hline
		0      & Ocean  & 90.0\%\\\hline
		1      & Land   & 10.0\%\\\hline
	\end{tabular}
	
	\subsection{Layer 2: Zoom}
	\begin{tabular}{|l|l|l|}\hline
		Scale: & \multicolumn{2}{|l|}{1:2048} \\\hline\hline
		Value  & Type   & Occurrence \\\hline
		0      & Ocean  & 90.0\%\\\hline
		1      & Land   & 10.0\%\\\hline
	\end{tabular}
	
	\subsection{Layer 3: Add Island}
	\begin{tabular}{|l|l|l|}\hline
		Scale: & \multicolumn{2}{|l|}{1:2048} \\\hline\hline
		Value  & Type   & Occurrence \\\hline
		0      & Ocean  & 84.3\%\\\hline
		1      & Land   & 15.7\%\\\hline
	\end{tabular}

	\subsection{Layer 4: Zoom}
	\begin{tabular}{|l|l|l|}\hline
		Scale: & \multicolumn{2}{|l|}{1:1024} \\\hline\hline
		Value  & Type   & Occurrence \\\hline
		0      & Ocean  & 84.9\%\\\hline
		1      & Land   & 15.1\%\\\hline
	\end{tabular}
	
	\subsection{Layer 5: Add Island}
	\begin{tabular}{|l|l|l|}\hline
		Scale: & \multicolumn{2}{|l|}{1:1024} \\\hline\hline
		Value  & Type   & Occurrence \\\hline
		0      & Ocean  & 81.4\%\\\hline
		1      & Land   & 18.6\%\\\hline
	\end{tabular}
	
	\subsection{Layer 6: Add Island}
	\begin{tabular}{|l|l|l|}\hline
		Scale: & \multicolumn{2}{|l|}{1:1024} \\\hline\hline
		Value  & Type   & Occurrence \\\hline
		0      & Ocean  & 77.5\%\\\hline
		1      & Land   & 22.5\%\\\hline
	\end{tabular}
	
	\subsection{Layer 7: Add Island}
	\begin{tabular}{|l|l|l|}\hline
		Scale: & \multicolumn{2}{|l|}{1:1024} \\\hline\hline
		Value  & Type   & Occurrence \\\hline
		0      & Ocean  & 73.4\%\\\hline
		1      & Land   & 26.6\%\\\hline
	\end{tabular}

	\subsection{Layer 8: Remove Too Much Ocean}
	\begin{tabular}{|l|l|l|}\hline
		Scale: & \multicolumn{2}{|l|}{1:1024} \\\hline\hline
		Value  & Type   & Occurrence \\\hline
		0      & Ocean  & 49.4\%\\\hline
		1      & Land   & 50.6\%\\\hline
	\end{tabular}
	
	
	\subsection{Layer 9: Add Snow}
	\begin{tabular}{|l|l|l|}\hline
		Scale: & \multicolumn{2}{|l|}{1:1024} \\\hline\hline
		Value  & Type     & Occurrence \\\hline
		0      & Ocean    & 49.4\%\\\hline
		1      & Warm     & 33.7\%\\\hline
		3      & Cold     & 4.8\%\\\hline
		4      & Freezing & 12.4\%\\\hline
	\end{tabular}
	
	\medskip\noindent
	Changes some of the land starting points to Cold and Freezing.

	\subsection{Layer 10: Add Island}
	\begin{tabular}{|l|l|l|}\hline
		Scale: & \multicolumn{2}{|l|}{1:1024} \\\hline\hline
		Value  & Type    & Occurrence \\\hline
		0      & Ocean   & 33.8\%\\\hline
		1      & Warm    & 37.6\%\\\hline
		3      & Cold    & 4.8\%\\\hline
		4      & Freeing & 23.9\%\\\hline
	\end{tabular}
	
	\medskip\noindent
	Spreads out the continental areas, decreasing the amount of ocean.

	\subsection{Layer 11: Edge, Cool/Warm}
	\begin{tabular}{|l|l|l|}\hline
		Scale: & \multicolumn{2}{|l|}{1:1024} \\\hline\hline
		Value  & Type     & Occurrence \\\hline
		0      & Ocean    & 33.8\%\\\hline
		1      & Warm     & 13.6\%\\\hline
		2      & Lush     & 23.9\%\\\hline
		3      & Cold     & 4.8\%\\\hline
		4      & Freezing & 23.9\%\\\hline
	\end{tabular}
	
	\medskip\noindent
	Changes Warm(1) lands which are adjacent to Cold(3) or Freezing(4) temperatures to Lush(2).
	
	\subsection{Layer 12: Edge, Heat/Ice}
	\begin{tabular}{|l|l|l|}\hline
		Scale: & \multicolumn{2}{|l|}{1:1024} \\\hline\hline
		Value  & Type     & Occurrence \\\hline
		0      & Ocean    & 33.8\%\\\hline
		1      & Warm     & 13.6\%\\\hline
		2      & Lush     & 23.9\%\\\hline
		3      & Cold     & 23.9\%\\\hline
		4      & Freezing & 4.8\%\\\hline
	\end{tabular}

	\medskip\noindent
	Changes Freezing(4) lands which are adjacent to Warm(1) or Lush(2) temperatures to Cold(3).

	\subsection{Layer 13: Edge, Special}
	\begin{tabular}{|l|l|l|}\hline
		Scale: & \multicolumn{2}{|l|}{1:1024} \\\hline\hline
		Value  & Type     & Occurrence \\\hline
		0      & Ocean    & 33.8\%\\\hline
		1      & Warm     & 12.5\%\\\hline
		2      & Lush     & 22.1\%\\\hline
		3      & Cold     & 22.1\%\\\hline
		4      & Freezing & 4.4\%\\\hline
		-      & Special  & 5.1\% / 60\\\hline
	\end{tabular}
	
	\medskip\noindent
	Marks every 1 in 13 lands (non-ocean) as special, by adding a 4-bit number in 0x0F00 to the value.
	
	
	\subsection{Layer 14: Zoom}
	\begin{tabular}{|l|l|l|}\hline
		Scale: & \multicolumn{2}{|l|}{1:512} \\\hline\hline
		Value  & Type   & Occurrence \\\hline
		0      & Ocean    & 35.6\%\\\hline
		1      & Warm     & 12.2\%\\\hline
		2      & Lush     & 21.9\%\\\hline
		3      & Cold     & 21.9\%\\\hline
		4      & Freezing & 4.2\%\\\hline
		-      & Special  & 4.2\% / 60\\\hline
	\end{tabular}

	\subsection{Layer 15: Zoom}
	\begin{tabular}{|l|l|l|}\hline
		Scale: & \multicolumn{2}{|l|}{1:256} \\\hline\hline
		Value  & Type   & Occurrence \\\hline
		0      & Ocean    & 35.6\%\\\hline
		1      & Warm     & 11.9\%\\\hline
		2      & Lush     & 21.9\%\\\hline
		3      & Cold     & 21.9\%\\\hline
		4      & Freezing & 4.2\%\\\hline
		-      & Special  & 4.5\% / 60\\\hline
	\end{tabular}
	
	\subsection{Layer 16: Add Island}
	\begin{tabular}{|l|l|l|}\hline
		Scale: & \multicolumn{2}{|l|}{1:256} \\\hline\hline
		Value  & Type   & Occurrence \\\hline
		0      & Ocean    & 31.4\%\\\hline
		1      & Warm     & 12.7\%\\\hline
		2      & Lush     & 22.4\%\\\hline
		3      & Cold     & 22.8\%\\\hline
		4      & Freezing & 6.2\%\\\hline
		-      & Special  & 4.5\% / 60\\\hline
	\end{tabular}
	
	
	\subsection{Layer 17: Add Mushroom Island}
	\begin{tabular}{|l|l|l|l|}\hline
		Scale: & \multicolumn{3}{|l|}{1:256} \\\hline\hline
		Value  & Type     & \multicolumn{2}{l|}{Occurrence} \\\hline
		0      & Ocean    & \multicolumn{2}{l|}{31.4\%}\\\hline
		1      & Warm     & \multicolumn{2}{l|}{12.8\%}\\\hline
		2      & Lush     & \multicolumn{2}{l|}{22.5\%}\\\hline
		3      & Cold     & \multicolumn{2}{l|}{22.7\%}\\\hline
		4      & Freezing & \multicolumn{2}{l|}{6.08\%}\\\hline
		14     & Mushroom & \multicolumn{2}{l|}{0.0773\%}\\\hline\hline
		
		\makecell[l]{ $(n<<8)+1$ \\ with $n = $ \\ $1, 4, 7, 10, 13$ } & - & 
		\makecell[l]{0.0690\% \\each} & \multirow{5}{*}{0.90\%}\\\cline{1-3}
		
		\makecell[l]{ $(n<<8)+1$ \\ with $n = $ \\ $2, 3, 5, 6, 8, 9,$ \\ $11, 12, 14, 15$ } & - & \makecell[l]{0.0553\% \\ each} & \\\hline\hline
		
		\makecell[l]{ $(n<<8)+2$ \\ with $n = $ \\ $1, 4, 7, 10, 13$ } & - & 
		\makecell[l]{0.1236\% \\ each} & \multirow{5}{*}{1.56\%}\\\cline{1-3}
		
		\makecell[l]{ $(n<<8)+2$ \\ with $n = $ \\ $2, 3, 5, 6, 8, 9,$ \\ $11, 12, 14, 15$ } & - & \makecell[l]{0.0961\% \\ each} & \\\hline\hline
		
		\makecell[l]{ $(n<<8)+3$ \\ with $n = $ \\ $1, 4, 7, 10, 13$ } & - & 
		\makecell[l]{0.1078\% \\ each} & \multirow{5}{*}{1.58\%}\\\cline{1-3}
		
		\makecell[l]{ $(n<<8)+3$ \\ with $n = $ \\ $2, 3, 5, 6, 8, 9,$ \\ $11, 12, 14, 15$ } & - &
		\makecell[l]{0.1037\% \\ each} & \\\hline\hline
				
		\makecell[l]{ $(n<<8)+4$ \\ with $n = $ \\ $1, 4, 7, 10, 13$ } & - & 
		\makecell[l]{0.0212\% \\ each} & \multirow{5}{*}{0.32\%}\\\cline{1-3}
		
		\makecell[l]{ $(n<<8)+4$ \\ with $n = $ \\ $2, 3, 5, 6, 8, 9,$ \\ $11, 12, 14, 15$ } & - &
		\makecell[l]{0.0212\% \\ each} & \\\hline

	\end{tabular}
	
	\medskip\noindent
	Changes every 100th Ocean (adjacent to more Ocean) to Mushroom Island. The special land types are written out in full in the table above. (Note "$<<$" represents a left bit shit.) Added together, the special types make up an average of about 4.37\% of the area.
	
	
	\subsection{Layer 18: Deep Ocean}
	\begin{tabular}{|l|l|l|}\hline
		Scale: & \multicolumn{2}{|l|}{1:256} \\\hline\hline
		Value  & Type       & Occurrence \\\hline
		0      & Ocean      & 22.0\%\\\hline
		1      & Warm       & 12.8\%\\\hline
		2      & Lush       & 22.5\%\\\hline
		3      & Cold       & 22.7\%\\\hline
		4      & Freezing   & 6.1\%\\\hline
		14     & Mushroom   & 0.0773\%\\\hline
		24     & Deep Ocean & 9.4\%\\\hline
		-      & Special    & 4.4\% / 60\\\hline
	\end{tabular}
	
	\medskip\noindent
	Changes any Ocean which is surrounded by more Ocean to Deep Ocean.\\
	(Special lands still have the same statistics as shown for Layer 17.)
	
	
	\subsection{Layer 19: Biome}
	\begin{tabular}{|l|l|l|}\hline
		Scale: & \multicolumn{2}{|l|}{1:256} \\\hline\hline
		Value  & Type           & Occurrence \\\hline
		0      & ocean          & 22.0\%\\\hline
		1      & plains         & 11.6\%\\\hline
		2      & desert         & 6.41\%\\\hline
		3      & extremeHills   & 9.44\%\\\hline
		4      & forest         & 9.43\%\\\hline
		5      & taiga          & 5.68\%\\\hline
		6      & swampland      & 3.75\%\\\hline
		12     & icePlains      & 4.80\%\\\hline
		14     & mushroomIsland & 0.0773\%\\\hline
		21     & jungle         & 1.58\%\\\hline
		24     & deepOcean      & 9.38\%\\\hline
		27     & birchForest    & 3.75\%\\\hline
		29     & roofedForest   & 3.75\%\\\hline
		30     & coldTaiga      & 1.60\%\\\hline
		32     & megaTaiga      & 1.58\%\\\hline
		35     & savanna        & 4.28\%\\\hline
		38     & mesaPlateau\_F & 0.598\%\\\hline
		39     & mesaPlateau    & 0.299\%\\\hline
	\end{tabular}

	\medskip\noindent
	Assigns the actual biome IDs to the lands, based on the temperature category of the land. To be more specific the selection criteria are: 
	
	\begin{tabular}{l c c l}
	
	Temperature & & Weight & Biome \\\hline\hline
	
	Warm & $\longrightarrow$ & 
	\makecell[c]{1/2 \\ 1/3 \\ 1/6} &
	\makecell[l]{desert \\ savanna \\ plains} \\\hline
	
	Warm, special & $\longrightarrow$ &
	\makecell[c]{1/3 \\ 2/3} &
	\makecell[l]{mesaPlateau \\ mesaPlateau\_F} \\\hline
	
	Lush & $\longrightarrow$ & 
	\makecell[c]{1/6 \\ 1/6 \\ 1/6 \\ 1/6 \\ 1/6 \\ 1/6} &
	\makecell[l]{forest \\ roofedForest \\ extremeHills \\ plains \\ birchForest \\ swampland} \\\hline
	
	Lush, special & $\longrightarrow$ & 
	\makecell[c]{1/1} &
	jungle \\\hline

	Cold & $\longrightarrow$ & 
	\makecell[c]{1/4 \\ 1/4 \\ 1/4 \\ 1/4} &
	\makecell[l]{forest \\ extremeHills \\ taiga \\ plains} \\\hline
	
	Cold, special & $\longrightarrow$ & 
	\makecell[c]{1/1} &
	megaTaiga \\\hline
	
	Freezing& $\longrightarrow$ & 
	\makecell[c]{3/4 \\ 1/4} & 
	\makecell[l]{icePlains \\ coldTaiga}
	
	\end{tabular}
	
	\medskip\noindent
	Ocean and Mushroom types are not affected by this layer. The special category is selected when one of the higher bits (0xF00) are set. E.g. 0x603 has high bits and is thus a special Cold(3) category.
	
	
	\subsection{Layer 20: Zoom}
	\begin{tabular}{|l|l|l|}\hline
		Scale: & \multicolumn{2}{|l|}{1:128} \\\hline\hline
		Value  & Type           & Occurrence \\\hline
		0      & ocean          & 23.6\%\\\hline
		1      & plains         & 11.3\%\\\hline
		2      & desert         & 6.48\%\\\hline
		3      & extremeHills   & 9.28\%\\\hline
		4      & forest         & 9.28\%\\\hline
		5      & taiga          & 5.52\%\\\hline
		6      & swampland      & 3.61\%\\\hline
		12     & icePlains      & 4.94\%\\\hline
		14     & mushroomIsland & 0.0586\%\\\hline
		21     & jungle         & 1.62\%\\\hline
		24     & deepOcean      & 9.09\%\\\hline
		27     & birchForest    & 3.61\%\\\hline
		29     & roofedForest   & 3.61\%\\\hline
		30     & coldTaiga      & 1.45\%\\\hline
		32     & megaTaiga      & 1.62\%\\\hline
		35     & savanna        & 4.12\%\\\hline
		38     & mesaPlateau\_F & 0.602\%\\\hline
		39     & mesaPlateau    & 0.279\%\\\hline
	\end{tabular}

	
	\subsection{Layer 21: Zoom}
	\begin{tabular}{|l|l|l|}\hline
		Scale: & \multicolumn{2}{|l|}{1:64} \\\hline\hline
		Value  & Type           & Occurrence \\\hline
		0      & ocean          & 23.9\%\\\hline
		1      & plains         & 11.2\%\\\hline
		2      & desert         & 6.50\%\\\hline
		3      & extremeHills   & 9.23\%\\\hline
		4      & forest         & 9.23\%\\\hline
		5      & taiga          & 5.49\%\\\hline
		6      & swampland      & 3.56\%\\\hline
		12     & icePlains      & 5.00\%\\\hline
		14     & mushroomIsland & 0.0543\%\\\hline
		21     & jungle         & 1.62\%\\\hline
		24     & deepOcean      & 9.03\%\\\hline
		27     & birchForest    & 3.58\%\\\hline
		29     & roofedForest   & 3.57\%\\\hline
		30     & coldTaiga      & 1.43\%\\\hline
		32     & megaTaiga      & 1.62\%\\\hline
		35     & savanna        & 4.08\%\\\hline
		38     & mesaPlateau\_F & 0.603\%\\\hline
		39     & mesaPlateau    & 0.275\%\\\hline
	\end{tabular}
	\subsection{Layer 22: Biome Edge}
	\begin{tabular}{|l|l|l|}\hline
		Scale: & \multicolumn{2}{|l|}{1:64} \\\hline\hline
		Value  & Type             & Occurrence \\\hline
		0      & ocean            & 23.9\%\\\hline
		1      & plains           & 11.2\%\\\hline
		2      & desert           & 6.48\%\\\hline
		3      & extremeHills     & 9.23\%\\\hline
		4      & forest           & 9.23\%\\\hline
		5      & taiga            & 6.01\%\\\hline
		6      & swampland        & 3.47\%\\\hline
		12     & icePlains        & 5.00\%\\\hline
		14     & mushroomIsland   & 0.0543\%\\\hline
		21     & jungle           & 1.62\%\\\hline
		23     & jungleEdge       & 0.0144\%\\\hline
		24     & deepOcean        & 9.03\%\\\hline
		27     & birchForest      & 3.58\%\\\hline
		29     & roofedForest     & 3.57\%\\\hline
		30     & coldTaiga        & 1.43\%\\\hline
		32     & megaTaiga        & 1.11\%\\\hline
		34     & extremeHillsPlus & 0.0111\%\\\hline
		35     & savanna          & 4.09\%\\\hline
		37     & mesa             & 0.321\%\\\hline
 		38     & mesaPlateau\_F   & 0.385\%\\\hline
		39     & mesaPlateau      & 0.172\%\\\hline
	\end{tabular}
	
	\medskip\noindent
	Introduces the biomes jungleEdge, extremeHillsPlus and mesa. The conditional biome changes that take place in this layer are:
	
	\begin{tabular}{l c l}
		mesaPlateau\_F & $\longrightarrow$ & mesa\\
		mesaPlateau & $\longrightarrow$ & mesa\\
		megaTaiga & $\longrightarrow$ & taiga\\
		desert & $\longrightarrow$ & extremeHillsPlus\\
		swampland & $\longrightarrow$ & jungleEdge \\
		swampland & $\longrightarrow$ & plains
	\end{tabular}

	\subsection{Layer 23: River Init}
	
	Starts a new branch of off Layer 18: Deep Ocean. This layer overwrites each map entry that is not Ocean(0) with a pseudo random number between 2 and 300000 (inclusive).
	
	\subsection{Layer 24: Zoom}
	\subsection{Layer 25: Zoom}
	
	\subsection{Layer 26: Hills}
	This is a multilayer which joins the biome generation with the river generator branch at the layers Biome Edge (22) and Zoom (25). However at this stage the river branch is mostly just used as a pseudo random number source. 
	
	\medskip\noindent
	\begin{tabular}{|l|l|l|}\hline
		Scale: & \multicolumn{2}{|l|}{1:64} \\\hline\hline
		Value  & Type             & Occurrence \\\hline
		0      & ocean            & 17.5\%\\\hline
		1      & plains           & 9.86\%\\\hline
		2      & desert           & 4.83\%\\\hline
		3      & extremeHills     & 6.95\%\\\hline
		4      & forest           & 8.87\%\\\hline
		5      & taiga            & 4.67\%\\\hline
		6      & swampland        & 3.36\%\\\hline
		12     & icePlains        & 3.54\%\\\hline
		13     & iceMountains     & 1.30\%\\\hline
		14     & mushroomIsland   & 0.0543\%\\\hline
		17     & desertHills      & 1.46\%\\\hline
		18     & forestHills      & 2.68\%\\\hline
		19     & taigaHills       & 1.15\%\\\hline
		21     & jungle           & 1.15\%\\\hline
		22     & jungleHills      & 0.420\%\\\hline
		23     & jungleEdge       & 0.0140\%\\\hline
		24     & deepOcean        & 14.4\%\\\hline
		27     & birchForest      & 2.58\%\\\hline
		28     & birchForestHills & 0.800\%\\\hline
		29     & roofedForest     & 2.57\%\\\hline
		30     & coldTaiga        & 1.11\%\\\hline
		31     & coldTaigaHills   & 0.282\%\\\hline
		32     & megaTaiga        & 0.688\%\\\hline
		33     & megaTaigaHills   & 0.344\%\\\hline
		34     & extremeHillsPlus & 1.80\%\\\hline
		35     & savanna          & 3.05\%\\\hline
		36     & savannaPlateau   & 0.830\%\\\hline
		37     & mesa             & 0.486\%\\\hline
		38     & mesaPlateau\_F   & 0.240\%\\\hline
		39     & mesaPlateau      & 0.107\%\\\hline
	\end{tabular}
	\newpage\noindent
	\begin{tabular}{|l|l|l|}\hline
		129    & Sunflower Plains     & 0.4816\%\\\hline
		130    & Desert M             & 0.1971\%\\\hline
		131    & Extreme Hills M      & 0.2944\%\\\hline
		132    & Flower Forest        & 0.4904\%\\\hline
		133    & Taiga M              & 0.1897\%\\\hline
		134    & Swampland M          & 0.1109\%\\\hline
		140    & Ice Plains Spikes    & 0.1606\%\\\hline
		149    & Jungle M             & 0.0511\%\\\hline
		151    & Jungle Edge M        & 0.0005\%\\\hline
		155    & Birch Forest M       & 0.1154\%\\\hline
		156    & Birch Forest Hills M & 0.0854\%\\\hline
		157    & Roofed Forest M      & 0.1144\%\\\hline
		158    & Cold Taiga M         & 0.0461\%\\\hline
		160    & Mega Spruce Taiga    & 0.0365\%\\\hline
		161    & Redwood Taiga Hills  & 0.0366\%\\\hline
		162    & Extreme Hills+ M     & 0.1913\%\\\hline
		163    & Savanna M            & 0.1240\%\\\hline
		164    & Savanna Plateau M    & 0.0853\%\\\hline
		165    & Mesa (Bryce)         & 0.0263\%\\\hline
		166    & Mesa Plateau F M     & 0.0123\%\\\hline
		167    & Mesa Plateau M       & 0.0056\%\\\hline
	\end{tabular}
	
	\medskip\noindent
	Nine new biomes: iceMountains, desertHills, forestHills, taigaHills, jungleHills, birchForestHills, coldTaigaHills, megaTaigaHills and savannaPlateau. Also there are 21 new mutated variants which I have listed by their ingame display name.
	
	This layer converts some map entries to related biomes, forming small biome patches. A list of the conversions that take place in this manor is shown below. Additionally, this layer adds 128 to some map entries, provided that the resulting biome ID is valid, forming mutated biome variants.
	
	\begin{tabular}{l c l}
		desert & $\longrightarrow$ & desertHill\\
		forest & $\longrightarrow$ & forestHills\\
		birchForest & $\longrightarrow$ & birchForestHills\\
		roofedForest & $\longrightarrow$ & plains\\
		taiga & $\longrightarrow$ & taigaHills\\
		megaTaiga & $\longrightarrow$ & megaTaigaHills\\
		coldTaiga & $\longrightarrow$ & coldTaigaHills\\
		plains & $\longrightarrow$ & (1/3) forestHills, (2/3) forest\\
		icePlains & $\longrightarrow$ & iceMountains\\
		jungle & $\longrightarrow$ & jungleHills\\
		ocean & $\longrightarrow$ & deepOcean\\
		extremeHills & $\longrightarrow$ & extremeHillsPlus\\
		savanna & $\longrightarrow$ & savannaPlateau\\
		mesaPlateau\_F & $\longrightarrow$ & mesa\\
		deepOcean & $\longrightarrow$ & (1/2) plains, (1/2) forest
	\end{tabular}
	
	\subsection{Layer 27: Rare Biome}
	\begin{tabular}{|l|l|l|}\hline
		Scale: & \multicolumn{2}{|l|}{1:64} \\\hline\hline
		Value  & Type             & Occurrence \\\hline
		1      & plains           & 9.68\%\\\hline
		129    & Sunflower Plains & 0.654\%\\\hline
		...    & ...              & ...\\\hline
	\end{tabular}
	
	\medskip\noindent
	This layer converts 1/57 th of Plains to Sunflower Plains. It has no affect on other biomes.
	
	\subsection{Layer 31: Shore}
	\begin{tabular}{|l|l|l|}\hline
		Scale: & \multicolumn{2}{|l|}{1:16} \\\hline\hline
		Value  & Type                & Occurrence \\\hline
		0      & ocean               & 15.7\%\\\hline
		1      & plains              & 8.93\%\\\hline
		2      & desert              & 4.59\%\\\hline
		3      & extremeHills        & 6.68\%\\\hline
		4      & forest              & 8.67\%\\\hline
		5      & taiga               & 4.39\%\\\hline
		6      & swampland           & 3.44\%\\\hline
		12     & icePlains           & 3.44\%\\\hline
		13     & iceMountains        & 1.15\%\\\hline
		14     & mushroomIsland      & 0.0370\%\\\hline
		15     & mushroomIslandShore & 0.0208\%\\\hline
		16     & beach               & 3.81\%\\\hline
		17     & desertHills         & 1.27\%\\\hline
		18     & forestHills         & 2.27\%\\\hline
		19     & taigaHills          & 0.975\%\\\hline
		21     & jungle              & 1.03\%\\\hline
		22     & jungleHills         & 0.359\%\\\hline
		23     & jungleEdge          & 0.0853\%\\\hline
		24     & deepOcean           & 15.7\%\\\hline
		25     & stoneBeach          & 0.534\%\\\hline
		26     & coldBeach           & 0.311\%\\\hline
		27     & birchForest         & 2.45\%\\\hline
		28     & birchForestHills    & 0.800\%\\\hline
		29     & roofedForest        & 2.57\%\\\hline
		30     & coldTaiga           & 1.07\%\\\hline
		31     & coldTaigaHills      & 0.246\%\\\hline
		32     & megaTaiga           & 0.691\%\\\hline
		33     & megaTaigaHills      & 0.313\%\\\hline
		34     & extremeHillsPlus    & 2.84\%\\\hline
		35     & savanna             & 3.05\%\\\hline
		36     & savannaPlateau      & 0.715\%\\\hline
		37     & mesa                & 0.469\%\\\hline
		38     & mesaPlateau\_F      & 0.242\%\\\hline
		39     & mesaPlateau         & 0.103\%\\\hline
	\end{tabular}
	\newpage\noindent
	\begin{tabular}{|l|l|l|}\hline
		129    & Sunflower Plains     & 0.571\%\\\hline
		130    & Desert M             & 0.188\%\\\hline
		131    & Extreme Hills M      & 0.284\%\\\hline
		132    & Flower Forest        & 0.430\%\\\hline
		133    & Taiga M              & 0.176\%\\\hline
		134    & Swampland M          & 0.111\%\\\hline
		140    & Ice Plains Spikes    & 0.157\%\\\hline
		149    & Jungle M             & 0.0492\%\\\hline
		151    & Jungle Edge M        & 0.000451\%\\\hline
		155    & Birch Forest M       & 0.109\%\\\hline
		156    & Birch Forest Hills M & 0.0827\%\\\hline
		157    & Roofed Forest M      & 0.114\%\\\hline
		158    & Cold Taiga M         & 0.0477\%\\\hline
		160    & Mega Spruce Taiga    & 0.0358\%\\\hline
		161    & Redwood Taiga Hills  & 0.0354\%\\\hline
		162    & Extreme Hills+ M     & 0.184\%\\\hline
		163    & Savanna M            & 0.119\%\\\hline
		164    & Savanna Plateau M    & 0.0824\%\\\hline
		165    & Mesa (Bryce)         & 0.0236\%\\\hline
		166    & Mesa Plateau F M     & 0.0121\%\\\hline
		167    & Mesa Plateau M       & 0.00566\%\\\hline
	\end{tabular}
	
	\medskip\noindent
	New biomes: mushroomIslandShore, beach, stoneBeach, coldBeach.

	\subsection{Layer 41: River}
	\begin{tabular}{|l|l|l|}\hline
		Scale: & \multicolumn{2}{|l|}{1:4} \\\hline\hline
		Value  & Type             & Occurrence \\\hline
		-1     & none             & 94.3\%\\\hline
		7      & river            & 5.70\%\\\hline
	\end{tabular}
	
	\medskip\noindent
	Uses the zoomed pseudo random output of the river branch to determine the position of rivers in the world. All other values are set to -1.

	\subsection{Layer 43: River Mix}
	\begin{tabular}{|l|l|l|}\hline
		Scale: & \multicolumn{2}{|l|}{1:4} \\\hline\hline
		Value  & Type                & Occurrence \\\hline
		0      & ocean               & 13.9\%\\\hline
		1      & plains              & 9.69\%\\\hline
		2      & desert              & 4.80\%\\\hline
		3      & extremeHills        & 7.24\%\\\hline
		4      & forest              & 9.21\%\\\hline
		5      & taiga               & 4.47\%\\\hline
		6      & swampland           & 4.03\%\\\hline
		7      & river               & 4.19\%\\\hline
		11     & frozenRiver         & 0.0872\%\\\hline
		12     & icePlains           & 1.52\%\\\hline
		13     & iceMountains        & 0.495\%\\\hline
		14     & mushroomIsland      & 0.0257\%\\\hline
		15     & mushroomIslandShore & 0.0172\%\\\hline
		16     & beach               & 2.96\%\\\hline
		17     & desertHills         & 1.33\%\\\hline
		18     & forestHills         & 2.50\%\\\hline
		19     & taigaHills          & 0.994\%\\\hline
		21     & jungle              & 1.21\%\\\hline
		22     & jungleHills         & 0.421\%\\\hline
		23     & jungleEdge          & 0.101\%\\\hline
		24     & deepOcean           & 12.7\%\\\hline
		25     & stoneBeach          & 0.426\%\\\hline
		26     & coldBeach           & 0.132\%\\\hline
		27     & birchForest         & 2.96\%\\\hline
		28     & birchForestHills    & 0.849\%\\\hline
		29     & roofedForest        & 2.93\%\\\hline
		30     & coldTaiga           & 0.466\%\\\hline
		31     & coldTaigaHills      & 0.107\%\\\hline
		32     & megaTaiga           & 0.704\%\\\hline
		33     & megaTaigaHills      & 0.316\%\\\hline
		34     & extremeHillsPlus    & 1.69\%\\\hline
		35     & savanna             & 2.97\%\\\hline
		36     & savannaPlateau      & 0.750\%\\\hline
		37     & mesa                & 0.456\%\\\hline
		38     & mesaPlateau\_F      & 0.251\%\\\hline
		39     & mesaPlateau         & 0.110\%\\\hline
	\end{tabular}
	\newpage\noindent
	\begin{tabular}{|l|l|l|}\hline
		129    & Sunflower Plains     & 0.616\%\\\hline
		130    & Desert M             & 0.205\%\\\hline
		131    & Extreme Hills M      & 0.315\%\\\hline
		132    & Flower Forest        & 0.477\%\\\hline
		133    & Taiga M              & 0.184\%\\\hline
		134    & Swampland M          & 0.130\%\\\hline
		140    & Ice Plains Spikes    & 0.0681\%\\\hline
		149    & Jungle M             & 0.0582\%\\\hline
		151    & Jungle Edge M        & 0.000625\%\\\hline
		155    & Birch Forest M       & 0.136\%\\\hline
		156    & Birch Forest Hills M & 0.101\%\\\hline
		157    & Roofed Forest M      & 0.136\%\\\hline
		158    & Cold Taiga M         & 0.0196\%\\\hline
		160    & Mega Spruce Taiga    & 0.0371\%\\\hline
		161    & Redwood Taiga Hills  & 0.0369\%\\\hline
		162    & Extreme Hills+ M     & 0.203\%\\\hline
		163    & Savanna M            & 0.128\%\\\hline
		164    & Savanna Plateau M    & 0.0882\%\\\hline
		165    & Mesa (Bryce)         & 0.0257\%\\\hline
		166    & Mesa Plateau F M     & 0.0134\%\\\hline
		167    & Mesa Plateau M       & 0.00585\%\\\hline
	\end{tabular}
	
	\medskip\noindent
	This layer is actually used in parts of the Minecraft code where a faster alternative for the full biome generator is required. Note that this layer has a scale of 1:4 and the final map is just a zoomed version of this layer's output. The function of this layer is to apply the rivers to the main biome branch. A new biome is also added in this layer: frozenRiver.
	

	\subsection{Layer 44: Voronoi Zoom}
	\begin{tabular}{|l|l|l|}\hline
		Scale: & \multicolumn{2}{|l|}{1:1} \\\hline\hline
		Value  & Type                & Occurrence \\\hline
		0      & ocean               & 13.7\%\\\hline
		1      & plains              & 10.0\%\\\hline
		2      & desert              & 4.84\%\\\hline
		3      & extremeHills        & 7.50\%\\\hline
		4      & forest              & 9.54\%\\\hline
		5      & taiga               & 4.59\%\\\hline
		6      & swampland           & 4.22\%\\\hline
		7      & river               & 4.30\%\\\hline
		11     & frozenRiver         & 0.0806\%\\\hline
		12     & icePlains           & 1.40\%\\\hline
		13     & iceMountains        & 0.451\%\\\hline
		14     & mushroomIsland      & 0.0209\%\\\hline
		15     & mushroomIslandShore & 0.0137\%\\\hline
		16     & beach               & 2.92\%\\\hline
		17     & desertHills         & 1.33\%\\\hline
		18     & forestHills         & 2.59\%\\\hline
		19     & taigaHills          & 1.00\%\\\hline
		21     & jungle              & 1.26\%\\\hline
		22     & jungleHills         & 0.429\%\\\hline
		23     & jungleEdge          & 0.118\%\\\hline
		24     & deepOcean           & 11.2\%\\\hline
		25     & stoneBeach          & 0.433\%\\\hline
		26     & coldBeach           & 0.118\%\\\hline
		27     & birchForest         & 3.12\%\\\hline
		28     & birchForestHills    & 0.890\%\\\hline
		29     & roofedForest        & 3.09\%\\\hline
		30     & coldTaiga           & 0.428\%\\\hline
		31     & coldTaigaHills      & 0.0984\%\\\hline
		32     & megaTaiga           & 0.675\%\\\hline
		33     & megaTaigaHills      & 0.303\%\\\hline
		34     & extremeHillsPlus    & 1.74\%\\\hline
		35     & savanna             & 3.00\%\\\hline
		36     & savannaPlateau      & 0.751\%\\\hline
		37     & mesa                & 0.464\%\\\hline
		38     & mesaPlateau\_F      & 0.238\%\\\hline
		39     & mesaPlateau         & 0.105\%\\\hline
	\end{tabular}
	\newpage\noindent
	\begin{tabular}{|l|l|l|}\hline
		129    & Sunflower Plains     & 0.635\%\\\hline
		130    & Desert M             & 0.203\%\\\hline
		131    & Extreme Hills M      & 0.325\%\\\hline
		132    & Flower Forest        & 0.491\%\\\hline
		133    & Taiga M              & 0.190\%\\\hline
		134    & Swampland M          & 0.134\%\\\hline
		140    & Ice Plains Spikes    & 0.0625\%\\\hline
		149    & Jungle M             & 0.0612\%\\\hline
		151    & Jungle Edge M        & 0.000781\%\\\hline
		155    & Birch Forest M       & 0.144\%\\\hline
		156    & Birch Forest Hills M & 0.106\%\\\hline
		157    & Roofed Forest M      & 0.142\%\\\hline
		158    & Cold Taiga M         & 0.0181\%\\\hline
		160    & Mega Spruce Taiga    & 0.0356\%\\\hline
		161    & Redwood Taiga Hills  & 0.0354\%\\\hline
		162    & Extreme Hills+ M     & 0.210\%\\\hline
		163    & Savanna M            & 0.129\%\\\hline
		164    & Savanna Plateau M    & 0.0885\%\\\hline
		165    & Mesa (Bryce)         & 0.0258\%\\\hline
		166    & Mesa Plateau F M     & 0.0131\%\\\hline
		167    & Mesa Plateau M       & 0.00559\%\\\hline
	\end{tabular}
	
	\medskip\noindent
	This is the final layer in the biome generator and contains all the Overworld biomes except for frozenOcean, which does not generate in Mincraft 1.7 - 1.12.
	
\end{document}



