diff --git a/mods/default/README.txt b/mods/default/README.txt
index 1c5e9e350d50ccc37edf3bd9752917c6b6261f87..bb7523efeb813ebf6f32eae84d5b485f8ca63d16 100644
--- a/mods/default/README.txt
+++ b/mods/default/README.txt
@@ -114,6 +114,10 @@ paramat (CC BY-SA 3.0):
   default_bookshelf_slot.png -- Derived from a texture by Gambit (CC-BY-SA 3.0)
   default_marram_grass_*.png -- Derived from textures by TumeniNodes (CC-BY-SA 3.0)
   default_emergent_jungle_sapling.png
+  default_permafrost.png -- Derived from a texture by Neuromancer (CC BY-SA 3.0)
+  default_stones.png -- Derived from a texture by sofar (CC0 1.0)
+  default_moss.png
+  default_moss_side.png
 
 TumeniNodes (CC BY-SA 3.0):
   default_desert_cobble.png -- Derived from a texture by brunob.santos (CC BY-SA 3.0)
diff --git a/mods/default/mapgen.lua b/mods/default/mapgen.lua
index c84e2076174603ca8189b6426a93d70ca401ffa9..8b1c9574381dbdf2755e46908aa34490c9573745 100644
--- a/mods/default/mapgen.lua
+++ b/mods/default/mapgen.lua
@@ -948,11 +948,25 @@ function default.register_biomes(upper_limit)
 	-- Tundra
 
 	minetest.register_biome({
-		name = "tundra",
-		node_dust = "default:snowblock",
+		name = "tundra_highland",
+		node_dust = "default:snow",
 		node_riverbed = "default:gravel",
 		depth_riverbed = 2,
 		y_max = upper_limit,
+		y_min = 49,
+		heat_point = 0,
+		humidity_point = 40,
+	})
+
+	minetest.register_biome({
+		name = "tundra",
+		node_top = "default:permafrost_with_stones",
+		depth_top = 1,
+		node_filler = "default:permafrost",
+		depth_filler = 1,
+		node_riverbed = "default:gravel",
+		depth_riverbed = 2,
+		y_max = 48,
 		y_min = 2,
 		heat_point = 0,
 		humidity_point = 40,
@@ -2028,6 +2042,52 @@ function default.register_decorations()
 		},
 	})
 
+	-- Tundra moss
+
+	minetest.register_decoration({
+		deco_type = "simple",
+		place_on = {"default:permafrost_with_stones"},
+		sidelen = 4,
+		noise_params = {
+			offset = -0.8,
+			scale = 2.0,
+			spread = {x = 100, y = 100, z = 100},
+			seed = 53995,
+			octaves = 3,
+			persist = 1.0
+		},
+		biomes = {"tundra"},
+		y_max = 48,
+		y_min = 2,
+		decoration = "default:permafrost_with_moss",
+		place_offset_y = -1,
+		flags = "force_placement",
+	})
+
+	-- Tundra patchy snow
+
+	minetest.register_decoration({
+		deco_type = "simple",
+		place_on = {
+			"default:permafrost_with_moss",
+			"default:permafrost_with_stones",
+			"default:stone"
+		},
+		sidelen = 4,
+		noise_params = {
+			offset = 0,
+			scale = 1.0,
+			spread = {x = 100, y = 100, z = 100},
+			seed = 172555,
+			octaves = 3,
+			persist = 1.0
+		},
+		biomes = {"tundra"},
+		y_max = 48,
+		y_min = 2,
+		decoration = "default:snow",
+	})
+
 	-- Coral reef
 
 	minetest.register_decoration({
diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua
index 77bccb28c0965af8f1be0feaff8bcb116601b8da..7d65f3000f96a81df025f30a9fd09bc47c82d7c4 100644
--- a/mods/default/nodes.lua
+++ b/mods/default/nodes.lua
@@ -53,6 +53,10 @@ default:dirt_with_snow
 default:dirt_with_rainforest_litter
 default:dirt_with_coniferous_litter
 
+default:permafrost
+default:permafrost_with_stones
+default:permafrost_with_moss
+
 default:sand
 default:desert_sand
 default:silver_sand
@@ -63,7 +67,6 @@ default:clay
 
 default:snow
 default:snowblock
-
 default:ice
 default:cave_ice
 
@@ -490,6 +493,34 @@ minetest.register_node("default:dirt_with_coniferous_litter", {
 	}),
 })
 
+minetest.register_node("default:permafrost", {
+	description = "Permafrost",
+	tiles = {"default_permafrost.png"},
+	groups = {cracky = 3},
+	sounds = default.node_sound_dirt_defaults(),
+})
+
+minetest.register_node("default:permafrost_with_stones", {
+	description = "Permafrost with Stones",
+	tiles = {"default_permafrost.png^default_stones.png",
+		"default_permafrost.png"},
+	groups = {cracky = 3},
+	drop = "default:permafrost",
+	sounds = default.node_sound_gravel_defaults(),
+})
+
+minetest.register_node("default:permafrost_with_moss", {
+	description = "Permafrost with Moss",
+	tiles = {"default_moss.png", "default_permafrost.png",
+		{name = "default_permafrost.png^default_moss_side.png",
+			tileable_vertical = false}},
+	groups = {cracky = 3},
+	drop = "default:permafrost",
+	sounds = default.node_sound_dirt_defaults({
+		footstep = {name = "default_grass_footstep", gain = 0.25},
+	}),
+})
+
 minetest.register_node("default:sand", {
 	description = "Sand",
 	tiles = {"default_sand.png"},
diff --git a/mods/default/textures/default_moss.png b/mods/default/textures/default_moss.png
new file mode 100644
index 0000000000000000000000000000000000000000..479038e9c2107b3d4dff4f80cb527308927bd516
Binary files /dev/null and b/mods/default/textures/default_moss.png differ
diff --git a/mods/default/textures/default_moss_side.png b/mods/default/textures/default_moss_side.png
new file mode 100644
index 0000000000000000000000000000000000000000..4a20345e6b72152983bd907641ef72e0dc207251
Binary files /dev/null and b/mods/default/textures/default_moss_side.png differ
diff --git a/mods/default/textures/default_permafrost.png b/mods/default/textures/default_permafrost.png
new file mode 100644
index 0000000000000000000000000000000000000000..f1edbab44e66a521cfe54feee3af6e95254f60fc
Binary files /dev/null and b/mods/default/textures/default_permafrost.png differ
diff --git a/mods/default/textures/default_stones.png b/mods/default/textures/default_stones.png
new file mode 100644
index 0000000000000000000000000000000000000000..09c5ee1481b2f9a4ec709f7c82f1005576b6c2ed
Binary files /dev/null and b/mods/default/textures/default_stones.png differ