diff --git a/src/mapnode.cpp b/src/mapnode.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..973b89ddd6cbec79ae17218f50124fa001c7db2d
--- /dev/null
+++ b/src/mapnode.cpp
@@ -0,0 +1,59 @@
+/*
+Minetest-c55
+Copyright (C) 2010 celeron55, Perttu Ahola <celeron55@gmail.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#include "mapnode.h"
+#include "tile.h"
+
+/*
+	Face directions:
+		0: up
+		1: down
+		2: right
+		3: left
+		4: back
+		5: front
+*/
+u16 g_content_tiles[USEFUL_CONTENT_COUNT][6] =
+{
+	{TILE_STONE,TILE_STONE,TILE_STONE,TILE_STONE,TILE_STONE,TILE_STONE},
+	{TILE_GRASS,TILE_MUD,TILE_MUD_WITH_GRASS,TILE_MUD_WITH_GRASS,TILE_MUD_WITH_GRASS,TILE_MUD_WITH_GRASS},
+	{TILE_WATER,TILE_WATER,TILE_WATER,TILE_WATER,TILE_WATER,TILE_WATER},
+	{TILE_NONE,TILE_NONE,TILE_NONE,TILE_NONE,TILE_NONE,TILE_NONE},
+	{TILE_TREE_TOP,TILE_TREE_TOP,TILE_TREE,TILE_TREE,TILE_TREE,TILE_TREE},
+	{TILE_LEAVES,TILE_LEAVES,TILE_LEAVES,TILE_LEAVES,TILE_LEAVES,TILE_LEAVES},
+	{TILE_GRASS_FOOTSTEPS,TILE_MUD,TILE_MUD_WITH_GRASS,TILE_MUD_WITH_GRASS,TILE_MUD_WITH_GRASS,TILE_MUD_WITH_GRASS},
+	{TILE_MESE,TILE_MESE,TILE_MESE,TILE_MESE,TILE_MESE,TILE_MESE},
+	{TILE_MUD,TILE_MUD,TILE_MUD,TILE_MUD,TILE_MUD,TILE_MUD},
+	{TILE_WATER,TILE_WATER,TILE_WATER,TILE_WATER,TILE_WATER,TILE_WATER},
+};
+
+const char * g_content_inventory_textures[USEFUL_CONTENT_COUNT] =
+{
+	"stone",
+	"grass",
+	"water",
+	"torch_on_floor",
+	"tree_top",
+	"leaves",
+	"grass_footsteps",
+	"mese",
+	"mud",
+	"water",
+};
+
diff --git a/src/tile.cpp b/src/tile.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..580d2a8a399b2c4b798397f8bffe0e9ec9e05a08
--- /dev/null
+++ b/src/tile.cpp
@@ -0,0 +1,61 @@
+/*
+Minetest-c55
+Copyright (C) 2010 celeron55, Perttu Ahola <celeron55@gmail.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#include "tile.h"
+
+const char * g_tile_texture_names[TILES_COUNT] =
+{
+	NULL,
+	"stone",
+	"water",
+	"grass",
+	"tree",
+	"leaves",
+	"grass_footsteps",
+	"mese",
+	"mud",
+	"tree_top",
+	"mud_with_grass",
+};
+
+video::SMaterial g_tile_materials[TILES_COUNT];
+
+void tile_materials_preload(TextureCache &cache)
+{
+	for(s32 i=0; i<TILES_COUNT; i++)
+	{
+		const char *name = g_tile_texture_names[i];
+
+		video::ITexture *t = NULL;
+
+		if(name != NULL)
+		{
+			t = cache.get(name);
+			assert(t != NULL);
+		}
+
+		g_tile_materials[i].Lighting = false;
+		g_tile_materials[i].BackfaceCulling = false;
+		g_tile_materials[i].setFlag(video::EMF_BILINEAR_FILTER, false);
+		g_tile_materials[i].setTexture(0, t);
+	}
+	
+	g_tile_materials[TILE_WATER].MaterialType = video::EMT_TRANSPARENT_VERTEX_ALPHA;
+}
+
diff --git a/src/tile.h b/src/tile.h
new file mode 100644
index 0000000000000000000000000000000000000000..286c5fb2e8aec90514e0e6946c1a974a7394232c
--- /dev/null
+++ b/src/tile.h
@@ -0,0 +1,60 @@
+/*
+Minetest-c55
+Copyright (C) 2010 celeron55, Perttu Ahola <celeron55@gmail.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#ifndef TILE_HEADER
+#define TILE_HEADER
+
+#include "common_irrlicht.h"
+#include "utility.h"
+
+// TileID is supposed to be stored in a u16
+
+enum TileID
+{
+	TILE_NONE, // Nothing shown
+	TILE_STONE,
+	TILE_WATER,
+	TILE_GRASS,
+	TILE_TREE,
+	TILE_LEAVES,
+	TILE_GRASS_FOOTSTEPS,
+	TILE_MESE,
+	TILE_MUD,
+	TILE_TREE_TOP,
+	TILE_MUD_WITH_GRASS,
+	
+	// Count of tile ids
+	TILES_COUNT
+};
+
+// A mapping from tiles to names of cached textures
+extern const char * g_tile_texture_names[TILES_COUNT];
+
+// A mapping from tiles to materials
+// Initialized at run-time.
+extern video::SMaterial g_tile_materials[TILES_COUNT];
+
+/*
+	Functions
+*/
+
+// Initializes g_tile_materials
+void tile_materials_preload(TextureCache &cache);
+
+#endif