diff --git a/dirt.lua b/dirt.lua
index 7982145f2a8a1f1526c0b106200b67b4619fe185..4f6914b640f2b05f9ee49766e28fef0c9112e6cb 100644
--- a/dirt.lua
+++ b/dirt.lua
@@ -40,7 +40,7 @@ minetest.register_craft({
 })
 
 local dirts = {
-	"Bamboo", "Jungle", "Grove", "Prairie", "Cold",
+	"Bamboo", "Jungle", "Mesa", "Grove", "Prairie", "Cold",
 	"Crystal", "Mushroom", "Fiery", "Gray"
 }
 
@@ -75,7 +75,7 @@ dirts = {
 	"ethereal:prairie_dirt", "ethereal:cold_dirt", "ethereal:crystal_dirt",
 	"ethereal:mushroom_dirt", "ethereal:fiery_dirt", "ethereal:gray_dirt",
 	"default:dirt_with_grass", "default:dirt_with_dry_grass", "ethereal:green_dirt",
-	"default:dirt_with_snow", "default:dirt_with_dry_grass"
+	"default:dirt_with_snow", "default:dirt_with_dry_grass", "ethereal:mesa_dirt",
 }
 
 -- check surrounding grass and change dirt to same colour
diff --git a/mapgen.lua b/mapgen.lua
index 69eaacd260e9b301fdd4431e5946a4e449eddc07..b90b3c0ad6236d47ebf7adb6c017e5727a12188d 100644
--- a/mapgen.lua
+++ b/mapgen.lua
@@ -72,7 +72,7 @@ add_biome("bamboo", nil, "ethereal:bamboo_dirt", 1, "default:dirt", 3,
 add_biome("bamboo_ocean", nil, "default:sand", 1, "default:sand", 2,
 	nil, nil, nil, nil, nil, -192, 2, 45, 75, ethereal.bamboo)
 
-add_biome("mesa", nil, "bakedclay:orange", 1, "bakedclay:orange", 15,
+add_biome("mesa", nil, "ethereal:mesa_dirt", 1, "bakedclay:orange", 15,
 	nil, nil, nil, nil, nil, 1, 71, 25, 28, ethereal.mesa)
 
 add_biome("mesa_ocean", nil, "default:sand", 1, "default:sand", 2,
@@ -191,7 +191,7 @@ local add_schem = function(a, b, c, d, e, f, g)
 end
 
 -- redwood tree
-add_schem({"bakedclay:orange"}, 0.0025, {"mesa"}, 1, 100, path .. "redwood.mts", ethereal.mesa)
+add_schem({"ethereal:mesa_dirt"}, 0.0025, {"mesa"}, 1, 100, path .. "redwood.mts", ethereal.mesa)
 
 -- banana tree
 add_schem({"ethereal:grove_dirt"}, 0.015, {"grove"}, 1, 100, ethereal.bananatree, ethereal.grove)
@@ -383,6 +383,7 @@ end
 -- jungle grass
 add_node({"ethereal:jungle_dirt"}, 0.10, {"junglee"}, 1, 100, {"default:junglegrass"}, nil, nil, nil, ethereal.junglee)
 add_node({"ethereal:green_dirt"}, 0.15, {"jumble"}, 1, 100, {"default:junglegrass"}, nil, nil, nil, ethereal.jumble)
+add_node({"ethereal:mesa_dirt"}, 0.10, {"mesa"}, 1, 100, {"default:junglegrass"}, nil, nil, nil, ethereal.mesa)
 
 -- grass
 add_node({"ethereal:green_dirt"}, 0.35, {"grassy"}, 1, 100, {"default:grass_2", "default:grass_3",
@@ -406,7 +407,7 @@ add_node({"ethereal:green_dirt"}, 0.25, {"clearing"}, 1, 100, {"default:grass_2"
 add_node({"default:sand"}, 0.25, {"sandclay"}, 3, 3, {"default:grass_2", "default:grass_3"}, nil, nil, nil, ethereal.sandclay)
 
 -- ferns
-add_node({"ethereal:grove_dirt"}, 0.2, {"grove"}, 1, 100, {"ethereal:fern"}, nil, nil, nil, ethereal.grove)
+add_node({"ethereal:grove_dirt","ethereal:jungle_dirt","ethereal:mesa_dirt"}, 0.2, {"grove","junglee","mesa"}, 1, 100, {"ethereal:fern"}, nil, nil, nil, ethereal.grove)
 
 
 -- snow
diff --git a/plantlife.lua b/plantlife.lua
index 98ba936282f885a74b9c68132a06d4d65287f5f8..33871182a85f8199f129f375d2f95a4619282e00 100644
--- a/plantlife.lua
+++ b/plantlife.lua
@@ -288,3 +288,73 @@ minetest.register_node("ethereal:illumishroom3", {
 		fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
 	},
 })
+
+minetest.register_node("ethereal:mystic_plant", {
+	description = "Testplant",
+	drawtype = "plantlike",
+	tiles = {"mystic_plant.png"},
+	paramtype = "light",
+	is_ground_content = false,
+	buildable_to = true, 
+	sunlight_propagates = true,
+    light_source = 12,
+    damage_per_second = 4,
+	inventory_image = "mystic_plant.png",
+	visual_scale = 1.4,
+	wield_scale = {x=0.5, y=0.5, z=0.5},
+	groups = {snappy=3, attatched_node=1, flora=1},
+	selection_box = {
+		type = "fixed",
+		fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}
+	},
+	walkable = false,
+})
+
+minetest.register_node("ethereal:dornbush", {
+	description = "Testplant",
+	drawtype = "plantlike",
+	tiles = {"ethereal_dornbush.png"},
+	paramtype = "light",
+	is_ground_content = false,
+	buildable_to = true, 
+	sunlight_propagates = true,
+    walkable = false,
+    damage_per_second = 6,
+	visual_scale = 2.4,
+	wield_scale = {x=0.5, y=0.5, z=0.5},
+	groups = {snappy=3, flammable=1, attatched_node=1, flora=1},
+	selection_box = {
+		type = "fixed",
+		fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}
+	},
+	walkable = false,
+})
+
+minetest.register_abm({
+    label = "Particles Mysticplant",
+    nodenames = {
+        "ethereal:mystic_plant"
+    },
+    neighbors = nil,
+    interval = 1,
+    chance = 1,
+    catch_up = false,
+    action = function(pos, node)
+        minetest.add_particlespawner({
+            amount = 1,
+            time = 0.2,
+            minpos = {x=pos.x-0.1, y=pos.y+0.6, z=pos.z-0.1},
+            maxpos = {x=pos.x+0.15, y=pos.y+0.8, z=pos.z+0.15},
+            minvel = {x = -0.002, y = 0.04, z = -0.002},
+            maxvel = {x = 0.002, y = 0.06, z = 0.002},
+            minacc = {x = 0, y = 0, z = 0},
+            maxacc = {x = 0, y = 0.06, z = 0},
+            minexptime = 2,
+            maxexptime = 3,
+            minsize = 0.4,
+            maxsize = 0.8,
+            colissiondetection = true,
+            texture = "glow_yellow_dark.png",
+        })
+    end
+})
diff --git a/plantpack.lua b/plantpack.lua
index c323e457f2d68f62b36475c6a807879f099af1d1..eaff73369e11c31b08ee431ac5402c04c46f146a 100644
--- a/plantpack.lua
+++ b/plantpack.lua
@@ -190,3 +190,21 @@ minetest.register_decoration({
 	biomes = {"clearing"},
 	decoration = {"xanadu:poppy"},
 })
+
+minetest.register_decoration({
+	deco_type = "simple",
+	place_on = "default:desert_stone",
+	sidelen = 16,
+	fill_ratio = 0.004,
+	biomes = {"desert"},
+	decoration = "ethereal:mystic_plant",
+})
+
+minetest.register_decoration({
+	deco_type = "simple",
+	place_on = {"default:sand"},
+	sidelen = 16,
+	fill_ratio = 0.004,
+	biomes = {"desert_ocean", "desert"},
+	decoration = "ethereal:dornbush",
+})
diff --git a/textures/dornbush.png b/textures/dornbush.png
new file mode 100644
index 0000000000000000000000000000000000000000..9b660add5dfeb0d6339d37e0d22c8dfc1ed573f8
Binary files /dev/null and b/textures/dornbush.png differ
diff --git a/textures/ethereal_grass_mesa_side.png b/textures/ethereal_grass_mesa_side.png
new file mode 100644
index 0000000000000000000000000000000000000000..1c765acce5992471ea073f7fc236879282b13b2c
Binary files /dev/null and b/textures/ethereal_grass_mesa_side.png differ
diff --git a/textures/ethereal_grass_mesa_top.png b/textures/ethereal_grass_mesa_top.png
new file mode 100644
index 0000000000000000000000000000000000000000..9b3e0a157102081a124f28af91a3e1cf2c03b2b5
Binary files /dev/null and b/textures/ethereal_grass_mesa_top.png differ
diff --git a/textures/glow_yellow_dark.png b/textures/glow_yellow_dark.png
new file mode 100644
index 0000000000000000000000000000000000000000..f3592652d4dc6bbae851f73181bb825781183cae
Binary files /dev/null and b/textures/glow_yellow_dark.png differ
diff --git a/textures/mystic_plant.png b/textures/mystic_plant.png
new file mode 100644
index 0000000000000000000000000000000000000000..b5b2889467ba7e860b002182c19520f351594694
Binary files /dev/null and b/textures/mystic_plant.png differ