diff --git a/games/minimal/mods/default/init.lua b/games/minimal/mods/default/init.lua
index 7b5869bc097e337491fc470eec2097534b9dee4f..120f004b7ebbbcb3aa9cda223cad0765e4d18ef8 100644
--- a/games/minimal/mods/default/init.lua
+++ b/games/minimal/mods/default/init.lua
@@ -834,7 +834,6 @@ minetest.register_node("default:leaves", {
 	visual_scale = 1.3,
 	tiles ={"default_leaves.png"},
 	paramtype = "light",
-	is_ground_content = false,
 	groups = {snappy=3},
 	drop = {
 		max_items = 1,
@@ -854,6 +853,17 @@ minetest.register_node("default:leaves", {
 	sounds = default.node_sound_leaves_defaults(),
 })
 
+minetest.register_node("default:jungleleaves", {
+	description = "Jungle Leaves",
+	drawtype = "allfaces_optional",
+	waving = 1,
+	visual_scale = 1.3,
+	tiles = {"default_jungleleaves.png"},
+	paramtype = "light",
+	groups = {snappy=3, leafdecay=3, flammable=2, leaves=1},
+	sounds = default.node_sound_leaves_defaults(),
+})
+
 minetest.register_node("default:cactus", {
 	description = "Cactus",
 	tiles ={"default_cactus_top.png", "default_cactus_top.png", "default_cactus_side.png"},
@@ -976,6 +986,7 @@ minetest.register_node("default:water_flowing", {
 	pointable = false,
 	diggable = false,
 	buildable_to = true,
+	is_ground_content = false,
 	drowning = 1,
 	liquidtype = "flowing",
 	liquid_alternative_flowing = "default:water_flowing",
@@ -1000,6 +1011,7 @@ minetest.register_node("default:water_source", {
 	pointable = false,
 	diggable = false,
 	buildable_to = true,
+	is_ground_content = false,
 	drowning = 1,
 	liquidtype = "source",
 	liquid_alternative_flowing = "default:water_flowing",
@@ -1032,6 +1044,7 @@ minetest.register_node("default:lava_flowing", {
 	pointable = false,
 	diggable = false,
 	buildable_to = true,
+	is_ground_content = false,
 	drowning = 1,
 	liquidtype = "flowing",
 	liquid_alternative_flowing = "default:lava_flowing",
@@ -1060,6 +1073,7 @@ minetest.register_node("default:lava_source", {
 	pointable = false,
 	diggable = false,
 	buildable_to = true,
+	is_ground_content = false,
 	drowning = 1,
 	liquidtype = "source",
 	liquid_alternative_flowing = "default:lava_flowing",
@@ -1494,6 +1508,74 @@ minetest.register_node("default:apple", {
 	sounds = default.node_sound_defaults(),
 })
 
+minetest.register_node("default:dirt_with_snow", {
+	description = "Dirt with Snow",
+	tiles = {"default_snow.png", "default_dirt.png", "default_dirt.png^default_snow_side.png"},
+	groups = {crumbly=3,soil=1},
+	drop = 'default:dirt',
+	sounds = default.node_sound_dirt_defaults(),
+})
+
+minetest.register_node("default:snow", {
+	description = "Snow",
+	tiles = {"default_snow.png"},
+	inventory_image = "default_snowball.png",
+	wield_image = "default_snowball.png",
+	paramtype = "light",
+	buildable_to = true,
+	drawtype = "nodebox",
+	node_box = {
+		type = "fixed",
+		fixed = {
+			{-0.5, -0.5, -0.5,  0.5, -0.5+2/16, 0.5},
+		},
+	},
+	groups = {crumbly=3,falling_node=1},
+	sounds = default.node_sound_dirt_defaults(),
+
+	on_construct = function(pos)
+		pos.y = pos.y - 1
+		if minetest.get_node(pos).name == "default:dirt_with_grass" then
+			minetest.set_node(pos, {name="default:dirt_with_snow"})
+		end
+	end,
+})
+
+minetest.register_node("default:snowblock", {
+	description = "Snow Block",
+	tiles = {"default_snow.png"},
+	groups = {crumbly=3},
+	sounds = default.node_sound_dirt_defaults(),
+})
+
+minetest.register_node("default:ice", {
+	description = "Ice",
+	tiles = {"default_ice.png"},
+	is_ground_content = false,
+	paramtype = "light",
+	groups = {cracky=3},
+	sounds = default.node_sound_glass_defaults(),
+})
+
+minetest.register_node("default:pinetree", {
+	description = "Pine Tree",
+	tiles = {"default_pinetree_top.png", "default_pinetree_top.png", "default_pinetree.png"},
+	paramtype2 = "facedir",
+	groups = {tree=1,choppy=2,oddly_breakable_by_hand=1,flammable=2},
+	sounds = default.node_sound_wood_defaults(),
+})
+
+minetest.register_node("default:pine_needles",{
+	description = "Pine Needles",
+	drawtype = "allfaces_optional",
+	visual_scale = 1.3,
+	tiles = {"default_pine_needles.png"},
+	waving = 1,
+	paramtype = "light",
+	groups = {snappy=3, leafdecay=3, flammable=2, leaves=1},
+	sounds = default.node_sound_leaves_defaults(),
+})
+
 --
 -- Grow tree function
 --
diff --git a/games/minimal/mods/default/mapgen.lua b/games/minimal/mods/default/mapgen.lua
index 8d203fbb29d0d37b077892c00ff0083b1f935ead..7b0c7f467ab3faf6a821b8d6c1779564d250e525 100644
--- a/games/minimal/mods/default/mapgen.lua
+++ b/games/minimal/mods/default/mapgen.lua
@@ -10,11 +10,19 @@ minetest.register_alias("mapgen_sand", "default:sand")
 minetest.register_alias("mapgen_water_source", "default:water_source")
 minetest.register_alias("mapgen_lava_source", "default:lava_source")
 minetest.register_alias("mapgen_gravel", "default:gravel")
+minetest.register_alias("mapgen_dirt_with_snow", "default:dirt_with_snow")
+minetest.register_alias("mapgen_snowblock", "default:snowblock")
+minetest.register_alias("mapgen_snow", "default:snow")
+minetest.register_alias("mapgen_ice", "default:ice")
 
 minetest.register_alias("mapgen_tree", "default:tree")
 minetest.register_alias("mapgen_leaves", "default:leaves")
 minetest.register_alias("mapgen_apple", "default:apple")
+minetest.register_alias("mapgen_jungletree", "default:jungletree")
+minetest.register_alias("mapgen_jungleleaves", "default:jungleleaves")
 minetest.register_alias("mapgen_junglegrass", "default:junglegrass")
+minetest.register_alias("mapgen_pinetree", "default:pinetree")
+minetest.register_alias("mapgen_pine_needles", "default:pine_needles")
 
 minetest.register_alias("mapgen_cobble", "default:cobble")
 minetest.register_alias("mapgen_stair_cobble", "stairs:stair_cobble")
diff --git a/games/minimal/mods/default/textures/default_ice.png b/games/minimal/mods/default/textures/default_ice.png
new file mode 100644
index 0000000000000000000000000000000000000000..2046eac6faf03dc0cf49e5af5919b3b6cc38c47e
Binary files /dev/null and b/games/minimal/mods/default/textures/default_ice.png differ
diff --git a/games/minimal/mods/default/textures/default_jungleleaves.png b/games/minimal/mods/default/textures/default_jungleleaves.png
new file mode 100644
index 0000000000000000000000000000000000000000..870b4bb27e9debc742a57ecda1fa9857cbc56499
Binary files /dev/null and b/games/minimal/mods/default/textures/default_jungleleaves.png differ
diff --git a/games/minimal/mods/default/textures/default_pine_needles.png b/games/minimal/mods/default/textures/default_pine_needles.png
new file mode 100644
index 0000000000000000000000000000000000000000..1a32f632da9b382172280a617b805168aa0f2aff
Binary files /dev/null and b/games/minimal/mods/default/textures/default_pine_needles.png differ
diff --git a/games/minimal/mods/default/textures/default_pinetree.png b/games/minimal/mods/default/textures/default_pinetree.png
new file mode 100644
index 0000000000000000000000000000000000000000..4a5328ff385ebe307f299a8aeb7866da0713aa8d
Binary files /dev/null and b/games/minimal/mods/default/textures/default_pinetree.png differ
diff --git a/games/minimal/mods/default/textures/default_pinetree_top.png b/games/minimal/mods/default/textures/default_pinetree_top.png
new file mode 100644
index 0000000000000000000000000000000000000000..8705710ed825fcf7cbbf6edf0de6b5b5ddb8b4f5
Binary files /dev/null and b/games/minimal/mods/default/textures/default_pinetree_top.png differ
diff --git a/games/minimal/mods/default/textures/default_snow.png b/games/minimal/mods/default/textures/default_snow.png
new file mode 100644
index 0000000000000000000000000000000000000000..2a2439fb9ebddbb7273a05fbcda2cf4de278626b
Binary files /dev/null and b/games/minimal/mods/default/textures/default_snow.png differ
diff --git a/games/minimal/mods/default/textures/default_snow_side.png b/games/minimal/mods/default/textures/default_snow_side.png
new file mode 100644
index 0000000000000000000000000000000000000000..3e98915131310783a3632d7622c61bdc0ca107b2
Binary files /dev/null and b/games/minimal/mods/default/textures/default_snow_side.png differ
diff --git a/games/minimal/mods/default/textures/default_snowball.png b/games/minimal/mods/default/textures/default_snowball.png
new file mode 100644
index 0000000000000000000000000000000000000000..ecdba9a39ce707ebe44d857e72114c72535caed9
Binary files /dev/null and b/games/minimal/mods/default/textures/default_snowball.png differ
diff --git a/src/treegen.cpp b/src/treegen.cpp
index 1c915ca39052dfbf32654112e67dc203675f1912..a85d88815357ba55d5917b380ad81261ea32f7a8 100644
--- a/src/treegen.cpp
+++ b/src/treegen.cpp
@@ -656,15 +656,8 @@ void make_jungletree(MMVManip &vmanip, v3s16 p0, INodeDefManager *ndef, int seed
 		and in games that have saplings; both are deprecated but not
 		replaced yet
 	*/
-	content_t c_tree   = ndef->getId("mapgen_jungletree");
-	content_t c_leaves = ndef->getId("mapgen_jungleleaves");
-	if (c_tree == CONTENT_IGNORE)
-		c_tree = ndef->getId("mapgen_tree");
-	if (c_leaves == CONTENT_IGNORE)
-		c_leaves = ndef->getId("mapgen_leaves");
-
-	MapNode treenode(c_tree);
-	MapNode leavesnode(c_leaves);
+	MapNode treenode(ndef->getId("mapgen_jungletree"));
+	MapNode leavesnode(ndef->getId("mapgen_jungleleaves"));
 
 	PseudoRandom pr(seed);
 	for (s16 x= -1; x <= 1; x++)