diff --git a/README.md b/README.md
index 4f8beaca9a283a08096678a1d8d993a082978eb6..786e64e0b60aee15d9e6644c4b356adda407c225 100644
--- a/README.md
+++ b/README.md
@@ -18,6 +18,7 @@ Ethereal Mapgen mod for Minetest (works on all except v6)
  - Added default Abm overrides
  - Added 4 new plants from baked clay mod to mapgen
  - Added swamp biome to outskirts of bamboo areas
+ - Added coral and silver sand to mapgen (0.4.15 only)
 
 ### 1.20
 
diff --git a/crystal.lua b/crystal.lua
index 91aac19e8b875ba7b9a2b0a124df4af6c691b8f5..e3782f6cffa7f537d6ae35321d644f0074d52bff 100644
--- a/crystal.lua
+++ b/crystal.lua
@@ -194,6 +194,7 @@ minetest.register_tool("ethereal:shovel_crystal", {
 			minetest.remove_node(pointed_thing.under)
 
 			nodeupdate(pos)
+			--minetest.check_for_falling(pos)
 
 			if minetest.setting_getbool("creative_mode") then
 
diff --git a/init.lua b/init.lua
index 6b43d2d483bbfb99ecdb6f7970977f6ada1fcaa6..f9ffdd49c372033bbebee71dcfbc6aff0caea817 100644
--- a/init.lua
+++ b/init.lua
@@ -1,6 +1,6 @@
 --[[
 
-	Minetest Ethereal Mod (6th December 2016)
+	Minetest Ethereal Mod (7th January 2017)
 
 	Created by ChinChow
 
diff --git a/mapgen.lua b/mapgen.lua
index 57d1933df1363b4ff04ca21d735f9336a7e1b275..f2fd48291b8a26eb9a2fb4bb87dbfb2485fd02a5 100644
--- a/mapgen.lua
+++ b/mapgen.lua
@@ -136,8 +136,13 @@ add_biome("caves", nil, "default:desert_stone", 3, "air", 8,
 add_biome("grayness", nil, "ethereal:gray_dirt", 1, "default:dirt", 3,
 	nil, nil, nil, nil, nil, 2, 41, 15, 30, ethereal.grayness)
 
-add_biome("grayness_ocean", nil, "default:sand", 1, "default:sand", 2,
-	nil, nil, nil, nil, nil, -192, 1, 15, 30, ethereal.grayness)
+if minetest.registered_nodes["default:silver_sand"] then
+	add_biome("grayness_ocean", nil, "default:silver_sand", 2, "default:sand", 2,
+		nil, nil, nil, nil, nil, -192, 1, 15, 30, ethereal.grayness)
+else
+	add_biome("grayness_ocean", nil, "default:sand", 1, "default:sand", 2,
+		nil, nil, nil, nil, nil, -192, 1, 15, 30, ethereal.grayness)
+end
 
 add_biome("grassytwo", nil, "ethereal:green_dirt", 1, "default:dirt", 3,
 	nil, nil, nil, nil, nil, 1, 91, 15, 40, ethereal.grassytwo)
@@ -576,6 +581,38 @@ minetest.register_on_generated(function(minp, maxp)
 	end
 end)
 
+-- coral reef (0.4.15 only)
+if minetest.registered_nodes["default:coral_orange"] then
+
+-- override corals so crystal shovel can pick them up intact
+minetest.override_item("default:coral_skeleton", {groups = {crumbly = 3}})
+minetest.override_item("default:coral_orange", {groups = {crumbly = 3}})
+minetest.override_item("default:coral_brown", {groups = {crumbly = 3}})
+
+	minetest.register_decoration({
+		deco_type = "schematic",
+		place_on = {"default:sand"},
+		noise_params = {
+			offset = -0.1,
+			scale = 0.1,
+			spread = {x = 200, y = 200, z = 200},
+			seed = 7013,
+			octaves = 3,
+			persist = 1,
+		},
+		biomes = {
+			"desert_ocean",
+			"grove_ocean",
+		},
+		y_min = -8,
+		y_max = -2,
+		schematic = dpath .. "corals.mts",
+		flags = "place_center_x, place_center_z",
+		rotation = "random",
+	})
+end
+
+
 -- is baked clay mod active? add new flowers if so
 if minetest.get_modpath("bakedclay") then
 
diff --git a/water.lua b/water.lua
index 48eb525b3aaf0372d0c07213096d95a8aa2a4045..476045cedbd68b3ce42c86ed395f6de98fb00fc9 100644
--- a/water.lua
+++ b/water.lua
@@ -101,6 +101,7 @@ minetest.register_abm({
 		end
 
 		nodeupdate(pos)
+		--minetest.check_for_falling(pos)
 	end,
 })