diff --git a/mods/ENTITIES/mcl_mobs/api.lua b/mods/ENTITIES/mcl_mobs/api.lua
index 61077f688..25d11da16 100644
--- a/mods/ENTITIES/mcl_mobs/api.lua
+++ b/mods/ENTITIES/mcl_mobs/api.lua
@@ -3771,6 +3771,7 @@ minetest.register_entity(name, {
 	use_texture_alpha = def.use_texture_alpha,
 	stepheight = def.stepheight or 0.6,
 	name = name,
+	description = def.description,
 	type = def.type,
 	attack_type = def.attack_type,
 	fly = def.fly,
diff --git a/mods/ENTITIES/mobs_mc/bat.lua b/mods/ENTITIES/mobs_mc/bat.lua
index 677b96aad..e9e1c1a16 100644
--- a/mods/ENTITIES/mobs_mc/bat.lua
+++ b/mods/ENTITIES/mobs_mc/bat.lua
@@ -3,6 +3,7 @@
 local S = minetest.get_translator("mobs_mc")
 
 mobs:register_mob("mobs_mc:bat", {
+	description = S("Bat"),
 	type = "animal",
 	spawn_class = "ambient",
 	can_despawn = true,
diff --git a/mods/ENTITIES/mobs_mc/blaze.lua b/mods/ENTITIES/mobs_mc/blaze.lua
index 876237f19..5340b804e 100644
--- a/mods/ENTITIES/mobs_mc/blaze.lua
+++ b/mods/ENTITIES/mobs_mc/blaze.lua
@@ -11,6 +11,7 @@ local S = minetest.get_translator("mobs_mc")
 
 
 mobs:register_mob("mobs_mc:blaze", {
+	description = S("Blaze"),
 	type = "monster",
 	spawn_class = "hostile",
 	hp_min = 20,
diff --git a/mods/ENTITIES/mobs_mc/chicken.lua b/mods/ENTITIES/mobs_mc/chicken.lua
index 246bf216a..615ec86e7 100644
--- a/mods/ENTITIES/mobs_mc/chicken.lua
+++ b/mods/ENTITIES/mobs_mc/chicken.lua
@@ -9,6 +9,7 @@ local S = minetest.get_translator("mobs_mc")
 
 
 mobs:register_mob("mobs_mc:chicken", {
+	description = S("Chicken"),
 	type = "animal",
 	spawn_class = "passive",
 
@@ -95,14 +96,14 @@ mobs:register_mob("mobs_mc:chicken", {
 			gain = 1.0,
 			max_hear_distance = 16,
 		}, true)
-	end,	
-	
+	end,
+
 })
 
 --spawn
 mobs:spawn_specific(
-"mobs_mc:chicken", 
-"overworld", 
+"mobs_mc:chicken",
+"overworld",
 "ground",
 {
 "FlowerForest",
@@ -122,10 +123,10 @@ mobs:spawn_specific(
 "ExtremeHillsM",
 "BirchForestM",
 },
-9, 
-minetest.LIGHT_MAX+1, 
-30, 17000, 
-3, 
+9,
+minetest.LIGHT_MAX+1,
+30, 17000,
+3,
 mobs_mc.spawn_height.water,
 mobs_mc.spawn_height.overworld_max)
 
diff --git a/mods/ENTITIES/mobs_mc/cow+mooshroom.lua b/mods/ENTITIES/mobs_mc/cow+mooshroom.lua
index 48fcc8197..62e124463 100644
--- a/mods/ENTITIES/mobs_mc/cow+mooshroom.lua
+++ b/mods/ENTITIES/mobs_mc/cow+mooshroom.lua
@@ -3,6 +3,7 @@
 local S = minetest.get_translator("mobs_mc")
 
 local cow_def = {
+	description = S("Cow"),
 	type = "animal",
 	spawn_class = "passive",
 	hp_min = 10,
@@ -43,7 +44,7 @@ local cow_def = {
 		stand_speed = 25, 	walk_speed = 40,
 		run_speed = 60,     stand_start = 0,
 		stand_end = 0,      walk_start = 0,
-		walk_end = 40,      run_start = 0,		
+		walk_end = 40,      run_start = 0,
 		run_end = 40,
 	},
 	follow = mobs_mc.follow.cow,
@@ -81,7 +82,7 @@ mobs:register_mob("mobs_mc:cow", cow_def)
 
 -- Mooshroom
 local mooshroom_def = table.copy(cow_def)
-
+mooshroom_def.description = S("Mooshroom")
 mooshroom_def.mesh = "mobs_mc_cow.b3d"
 mooshroom_def.textures = { {"mobs_mc_mooshroom.png", "mobs_mc_mushroom_red.png"}, {"mobs_mc_mooshroom_brown.png", "mobs_mc_mushroom_brown.png" } }
 mooshroom_def.on_rightclick = function(self, clicker)
@@ -147,7 +148,7 @@ mobs:register_mob("mobs_mc:mooshroom", mooshroom_def)
 -- Spawning
 mobs:spawn_specific(
 "mobs_mc:cow",
-"overworld", 
+"overworld",
 "ground",
 {
 "FlowerForest",
@@ -167,30 +168,30 @@ mobs:spawn_specific(
 "ExtremeHillsM",
 "BirchForestM",
 },
-9, 
-minetest.LIGHT_MAX+1, 
-30, 
-17000, 
-10, 
-mobs_mc.spawn_height.water, 
+9,
+minetest.LIGHT_MAX+1,
+30,
+17000,
+10,
+mobs_mc.spawn_height.water,
 mobs_mc.spawn_height.overworld_max)
 
 
 
 mobs:spawn_specific(
-"mobs_mc:mooshroom", 
-"overworld", 
+"mobs_mc:mooshroom",
+"overworld",
 "ground",
 {
 "MushroomIslandShore",
 "MushroomIsland"
 },
-9, 
-minetest.LIGHT_MAX+1, 
-30, 
-17000, 
-5, 
-mobs_mc.spawn_height.overworld_min, 
+9,
+minetest.LIGHT_MAX+1,
+30,
+17000,
+5,
+mobs_mc.spawn_height.overworld_min,
 mobs_mc.spawn_height.overworld_max)
 
 -- spawn egg
diff --git a/mods/ENTITIES/mobs_mc/creeper.lua b/mods/ENTITIES/mobs_mc/creeper.lua
index 0c884d569..827d08aab 100644
--- a/mods/ENTITIES/mobs_mc/creeper.lua
+++ b/mods/ENTITIES/mobs_mc/creeper.lua
@@ -130,6 +130,7 @@ mobs:register_mob("mobs_mc:creeper", {
 })
 
 mobs:register_mob("mobs_mc:creeper_charged", {
+	description = S("Creeper"),
 	type = "monster",
 	spawn_class = "hostile",
 	hp_min = 20,
@@ -142,7 +143,7 @@ mobs:register_mob("mobs_mc:creeper_charged", {
 	mesh = "mobs_mc_creeper.b3d",
 
 	--BOOM
-	
+
 	textures = {
 		{"mobs_mc_creeper.png",
 		"mobs_mc_creeper_charge.png"},
@@ -254,8 +255,8 @@ mobs:register_mob("mobs_mc:creeper_charged", {
 })
 
 mobs:spawn_specific(
-"mobs_mc:creeper", 
-"overworld", 
+"mobs_mc:creeper",
+"overworld",
 "ground",
 {
 "Mesa",
@@ -398,12 +399,12 @@ mobs:spawn_specific(
 "ExtremeHillsM_underground",
 "JungleEdgeM_underground",
 },
-0, 
-7, 
-20, 
-16500, 
-2, 
-mobs_mc.spawn_height.overworld_min, 
+0,
+7,
+20,
+16500,
+2,
+mobs_mc.spawn_height.overworld_min,
 mobs_mc.spawn_height.overworld_max)
 
 -- spawn eggs
diff --git a/mods/ENTITIES/mobs_mc/ender_dragon.lua b/mods/ENTITIES/mobs_mc/ender_dragon.lua
index a6f404275..8b0b1977b 100644
--- a/mods/ENTITIES/mobs_mc/ender_dragon.lua
+++ b/mods/ENTITIES/mobs_mc/ender_dragon.lua
@@ -5,6 +5,7 @@
 local S = minetest.get_translator("mobs_mc")
 
 mobs:register_mob("mobs_mc:enderdragon", {
+	description = S("Ender Dragon"),
 	type = "monster",
 	spawn_class = "hostile",
 	pathfinding = 1,
diff --git a/mods/ENTITIES/mobs_mc/enderman.lua b/mods/ENTITIES/mobs_mc/enderman.lua
index 9c47e98fc..7c55b34d6 100644
--- a/mods/ENTITIES/mobs_mc/enderman.lua
+++ b/mods/ENTITIES/mobs_mc/enderman.lua
@@ -190,6 +190,7 @@ end
 local mobs_griefing = minetest.settings:get_bool("mobs_griefing") ~= false
 
 mobs:register_mob("mobs_mc:enderman", {
+	description = S("Enderman"),
 	type = "monster",
 	spawn_class = "passive",
 	passive = true,
@@ -330,7 +331,7 @@ mobs:register_mob("mobs_mc:enderman", {
 		end
 		-- Check to see if people are near by enough to look at us.
 		for _,obj in pairs(minetest.get_connected_players()) do
-			
+
 			--check if they are within radius
 			local player_pos = obj:get_pos()
 			if player_pos then -- prevent crashing in 1 in a million scenario
@@ -355,7 +356,7 @@ mobs:register_mob("mobs_mc:enderman", {
 						local ender_eye_pos = vector.new(enderpos.x, enderpos.y + 2.75, enderpos.z)
 						local eye_distance_from_player = vector.distance(ender_eye_pos, look_pos)
 						look_pos = vector.add(look_pos, vector.multiply(look_dir, eye_distance_from_player))
-					
+
 						--if looking in general head position, turn hostile
 						if minetest.line_of_sight(ender_eye_pos, look_pos_base) and vector.distance(look_pos, ender_eye_pos) <= 0.4 then
 							self.provoked = "staring"
@@ -364,7 +365,7 @@ mobs:register_mob("mobs_mc:enderman", {
 						else -- I'm not sure what this part does, but I don't want to break anything - jordan4ibanez
 							if self.provoked == "staring" then
 								self.provoked = "broke_contact"
-							end						
+							end
 						end
 
 					end
@@ -562,23 +563,23 @@ mobs:register_mob("mobs_mc:enderman", {
 
 -- End spawn
 mobs:spawn_specific(
-"mobs_mc:enderman", 
-"end", 
+"mobs_mc:enderman",
+"end",
 "ground",
 {
 "End"
 },
-0, 
-minetest.LIGHT_MAX+1, 
-30, 
-3000, 
-12, 
-mobs_mc.spawn_height.end_min, 
+0,
+minetest.LIGHT_MAX+1,
+30,
+3000,
+12,
+mobs_mc.spawn_height.end_min,
 mobs_mc.spawn_height.end_max)
 -- Overworld spawn
 mobs:spawn_specific(
-"mobs_mc:enderman", 
-"overworld", 
+"mobs_mc:enderman",
+"overworld",
 "ground",
 {
 "Mesa",
@@ -721,28 +722,28 @@ mobs:spawn_specific(
 "ExtremeHillsM_underground",
 "JungleEdgeM_underground",
 },
-0, 
-7, 
-30, 
-19000, 
-2, 
-mobs_mc.spawn_height.overworld_min, 
+0,
+7,
+30,
+19000,
+2,
+mobs_mc.spawn_height.overworld_min,
 mobs_mc.spawn_height.overworld_max)
 
 -- Nether spawn (rare)
 mobs:spawn_specific(
-"mobs_mc:enderman", 
-"nether", 
+"mobs_mc:enderman",
+"nether",
 "ground",
 {
 "Nether"
 },
-0, 
-7, 
-30, 
-27500, 
-4, 
-mobs_mc.spawn_height.nether_min, 
+0,
+7,
+30,
+27500,
+4,
+mobs_mc.spawn_height.nether_min,
 mobs_mc.spawn_height.nether_max)
 
 -- spawn eggs
diff --git a/mods/ENTITIES/mobs_mc/endermite.lua b/mods/ENTITIES/mobs_mc/endermite.lua
index da3922a10..2bffa8304 100644
--- a/mods/ENTITIES/mobs_mc/endermite.lua
+++ b/mods/ENTITIES/mobs_mc/endermite.lua
@@ -5,6 +5,7 @@
 local S = minetest.get_translator("mobs_mc")
 
 mobs:register_mob("mobs_mc:endermite", {
+	description = S("Endermite"),
 	type = "monster",
 	spawn_class = "hostile",
 	passive = false,
diff --git a/mods/ENTITIES/mobs_mc/ghast.lua b/mods/ENTITIES/mobs_mc/ghast.lua
index 48d71b45e..1d7179162 100644
--- a/mods/ENTITIES/mobs_mc/ghast.lua
+++ b/mods/ENTITIES/mobs_mc/ghast.lua
@@ -11,6 +11,7 @@ local S = minetest.get_translator("mobs_mc")
 
 
 mobs:register_mob("mobs_mc:ghast", {
+	description = S("Ghast"),
 	type = "monster",
 	spawn_class = "hostile",
 	pathfinding = 1,
diff --git a/mods/ENTITIES/mobs_mc/guardian.lua b/mods/ENTITIES/mobs_mc/guardian.lua
index 13c857ea3..06a2ba2e2 100644
--- a/mods/ENTITIES/mobs_mc/guardian.lua
+++ b/mods/ENTITIES/mobs_mc/guardian.lua
@@ -5,6 +5,7 @@
 local S = minetest.get_translator("mobs_mc")
 
 mobs:register_mob("mobs_mc:guardian", {
+	description = S("Guardian"),
 	type = "monster",
 	spawn_class = "hostile",
 	hp_min = 30,
diff --git a/mods/ENTITIES/mobs_mc/guardian_elder.lua b/mods/ENTITIES/mobs_mc/guardian_elder.lua
index 089f6e38f..5b8150dd4 100644
--- a/mods/ENTITIES/mobs_mc/guardian_elder.lua
+++ b/mods/ENTITIES/mobs_mc/guardian_elder.lua
@@ -7,6 +7,7 @@
 local S = minetest.get_translator("mobs_mc")
 
 mobs:register_mob("mobs_mc:guardian_elder", {
+	description = S("Elder Guardian"),
 	type = "monster",
 	spawn_class = "hostile",
 	hp_min = 80,
diff --git a/mods/ENTITIES/mobs_mc/horse.lua b/mods/ENTITIES/mobs_mc/horse.lua
index 938a6b6ac..ac631f205 100644
--- a/mods/ENTITIES/mobs_mc/horse.lua
+++ b/mods/ENTITIES/mobs_mc/horse.lua
@@ -83,6 +83,7 @@ end
 
 -- Horse
 local horse = {
+	description = S("Horse"),
 	type = "animal",
 	spawn_class = "passive",
 	visual = "mesh",
@@ -418,6 +419,7 @@ mobs:register_mob("mobs_mc:horse", horse)
 
 -- Skeleton horse
 local skeleton_horse = table.copy(horse)
+skeleton_horse.description = S("Skeleton Horse")
 skeleton_horse.breath_max = -1
 skeleton_horse.armor = {undead = 100, fleshy = 100}
 skeleton_horse.textures = {{"blank.png", "mobs_mc_horse_skeleton.png", "blank.png"}}
@@ -440,6 +442,7 @@ mobs:register_mob("mobs_mc:skeleton_horse", skeleton_horse)
 
 -- Zombie horse
 local zombie_horse = table.copy(horse)
+zombie_horse.description = S("Zombie Horse")
 zombie_horse.breath_max = -1
 zombie_horse.armor = {undead = 100, fleshy = 100}
 zombie_horse.textures = {{"blank.png", "mobs_mc_horse_zombie.png", "blank.png"}}
@@ -464,6 +467,7 @@ mobs:register_mob("mobs_mc:zombie_horse", zombie_horse)
 -- Donkey
 local d = 0.86 -- donkey scale
 local donkey = table.copy(horse)
+donkey.description = S("Donkey")
 donkey.textures = {{"blank.png", "mobs_mc_donkey.png", "blank.png"}}
 donkey.animation = {
 	speed_normal = 25,
@@ -494,6 +498,7 @@ mobs:register_mob("mobs_mc:donkey", donkey)
 -- Mule
 local m = 0.94
 local mule = table.copy(donkey)
+mule.description = S("Mule")
 mule.textures = {{"blank.png", "mobs_mc_mule.png", "blank.png"}}
 mule.visual_size = { x=horse.visual_size.x*m, y=horse.visual_size.y*m }
 mule.sounds = table.copy(donkey.sounds)
@@ -532,18 +537,18 @@ mobs:spawn_specific(
 "ExtremeHillsM",
 "BirchForestM",
 },
-0, 
-minetest.LIGHT_MAX+1, 
-30, 
-15000, 
-4, 
-mobs_mc.spawn_height.water+3, 
+0,
+minetest.LIGHT_MAX+1,
+30,
+15000,
+4,
+mobs_mc.spawn_height.water+3,
 mobs_mc.spawn_height.overworld_max)
 
 
 mobs:spawn_specific(
-"mobs_mc:donkey", 
-"overworld", 
+"mobs_mc:donkey",
+"overworld",
 "ground",
 {
 "Mesa",
@@ -553,12 +558,12 @@ mobs:spawn_specific(
 "MesaPlateauF_grasstop",
 "MesaBryce",
 },
-0, 
-minetest.LIGHT_MAX+1, 
-30, 
-15000, 
-4, 
-mobs_mc.spawn_height.water+3, 
+0,
+minetest.LIGHT_MAX+1,
+30,
+15000,
+4,
+mobs_mc.spawn_height.water+3,
 mobs_mc.spawn_height.overworld_max)
 
 -- spawn eggs
diff --git a/mods/ENTITIES/mobs_mc/iron_golem.lua b/mods/ENTITIES/mobs_mc/iron_golem.lua
index 2ccee2d0a..0d3e74645 100644
--- a/mods/ENTITIES/mobs_mc/iron_golem.lua
+++ b/mods/ENTITIES/mobs_mc/iron_golem.lua
@@ -12,6 +12,7 @@ local S = minetest.get_translator("mobs_mc")
 
 
 mobs:register_mob("mobs_mc:iron_golem", {
+	description = S("Iron Golem"),
 	type = "npc",
 	spawn_class = "passive",
 	passive = true,
diff --git a/mods/ENTITIES/mobs_mc/llama.lua b/mods/ENTITIES/mobs_mc/llama.lua
index 8ff82b502..655cddfb6 100644
--- a/mods/ENTITIES/mobs_mc/llama.lua
+++ b/mods/ENTITIES/mobs_mc/llama.lua
@@ -25,6 +25,7 @@ local carpets = {
 }
 
 mobs:register_mob("mobs_mc:llama", {
+	description = S("Llama"),
 	type = "animal",
 	spawn_class = "passive",
 	hp_min = 15,
@@ -229,12 +230,12 @@ mobs:spawn_specific(
 "MesaPlateauF_grasstop",
 "MesaBryce",
 },
-0, 
-minetest.LIGHT_MAX+1, 
-30, 
-15000, 
-5, 
-mobs_mc.spawn_height.water+15, 
+0,
+minetest.LIGHT_MAX+1,
+30,
+15000,
+5,
+mobs_mc.spawn_height.water+15,
 mobs_mc.spawn_height.overworld_max)
 
 -- spawn eggs
diff --git a/mods/ENTITIES/mobs_mc/ocelot.lua b/mods/ENTITIES/mobs_mc/ocelot.lua
index f3c8c87ae..5a3f135a1 100644
--- a/mods/ENTITIES/mobs_mc/ocelot.lua
+++ b/mods/ENTITIES/mobs_mc/ocelot.lua
@@ -27,6 +27,7 @@ end
 
 -- Ocelot
 local ocelot = {
+	description = S("Ocelot"),
 	type = "animal",
 	spawn_class = "passive",
 	can_despawn = true,
@@ -102,6 +103,7 @@ mobs:register_mob("mobs_mc:ocelot", ocelot)
 
 -- Cat
 local cat = table.copy(ocelot)
+cat.description = S("Cat")
 cat.textures = {{"mobs_mc_cat_black.png"}, {"mobs_mc_cat_red.png"}, {"mobs_mc_cat_siamese.png"}}
 cat.can_despawn = false
 cat.owner = ""
@@ -154,8 +156,8 @@ local base_spawn_chance = 5000
 -- Spawn ocelot
 --they get the same as the llama because I'm trying to rework so much of this code right now -j4i
 mobs:spawn_specific(
-"mobs_mc:ocelot", 
-"overworld", 
+"mobs_mc:ocelot",
+"overworld",
 "ground",
 {
 "Jungle",
@@ -163,12 +165,12 @@ mobs:spawn_specific(
 "JungleM",
 "JungleEdge",
 },
-0, 
-minetest.LIGHT_MAX+1, 
-30, 
-15000, 
-5, 
-mobs_mc.spawn_height.water+15, 
+0,
+minetest.LIGHT_MAX+1,
+30,
+15000,
+5,
+mobs_mc.spawn_height.water+15,
 mobs_mc.spawn_height.overworld_max)
 --[[
 mobs:spawn({
@@ -183,7 +185,7 @@ mobs:spawn({
 	max_height = mobs_mc.spawn_height.overworld_max,
 	on_spawn = function(self, pos)
 		 Note: Minecraft has a 1/3 spawn failure rate.
-		In this mod it is emulated by reducing the spawn rate accordingly (see above). 
+		In this mod it is emulated by reducing the spawn rate accordingly (see above).
 
 		-- 1/7 chance to spawn 2 ocelot kittens
 		if pr:next(1,7) == 1 then
diff --git a/mods/ENTITIES/mobs_mc/parrot.lua b/mods/ENTITIES/mobs_mc/parrot.lua
index 5efcb191b..c04ea77c6 100644
--- a/mods/ENTITIES/mobs_mc/parrot.lua
+++ b/mods/ENTITIES/mobs_mc/parrot.lua
@@ -12,6 +12,7 @@ local S = minetest.get_translator("mobs_mc")
 
 
 mobs:register_mob("mobs_mc:parrot", {
+	description = S("Parrot"),
 	type = "npc",
 	spawn_class = "passive",
 	pathfinding = 1,
@@ -93,7 +94,7 @@ mobs:register_mob("mobs_mc:parrot", {
 -- Parrots spawn rarely in jungles. TODO: Also check for jungle *biome* <- I'll get to this eventually -j4i
 mobs:spawn_specific(
 "mobs_mc:parrot",
-"overworld", 
+"overworld",
 "ground",
 {
 "Jungle",
@@ -101,12 +102,12 @@ mobs:spawn_specific(
 "JungleM",
 "JungleEdge",
 },
-0, 
-minetest.LIGHT_MAX+1, 
-7, 
-30000, 
-1, 
-mobs_mc.spawn_height.water+7, 
+0,
+minetest.LIGHT_MAX+1,
+7,
+30000,
+1,
+mobs_mc.spawn_height.water+7,
 mobs_mc.spawn_height.overworld_max)
 
 -- spawn eggs
diff --git a/mods/ENTITIES/mobs_mc/pig.lua b/mods/ENTITIES/mobs_mc/pig.lua
index b7cdf1afe..b7d919cff 100644
--- a/mods/ENTITIES/mobs_mc/pig.lua
+++ b/mods/ENTITIES/mobs_mc/pig.lua
@@ -3,6 +3,7 @@
 local S = minetest.get_translator("mobs_mc")
 
 mobs:register_mob("mobs_mc:pig", {
+	description = S("Pig"),
 	type = "animal",
 	spawn_class = "passive",
 	runaway = true,
@@ -183,8 +184,8 @@ mobs:register_mob("mobs_mc:pig", {
 })
 
 mobs:spawn_specific(
-"mobs_mc:pig", 
-"overworld", 
+"mobs_mc:pig",
+"overworld",
 "ground",
 {
 "FlowerForest",
@@ -204,12 +205,12 @@ mobs:spawn_specific(
 "ExtremeHillsM",
 "BirchForestM",
 },
-9, 
-minetest.LIGHT_MAX+1, 
-30, 
-15000, 
-8, 
-mobs_mc.spawn_height.overworld_min, 
+9,
+minetest.LIGHT_MAX+1,
+30,
+15000,
+8,
+mobs_mc.spawn_height.overworld_min,
 mobs_mc.spawn_height.overworld_max)
 
 -- spawn eggs
diff --git a/mods/ENTITIES/mobs_mc/polar_bear.lua b/mods/ENTITIES/mobs_mc/polar_bear.lua
index 5d2853f6d..98268961b 100644
--- a/mods/ENTITIES/mobs_mc/polar_bear.lua
+++ b/mods/ENTITIES/mobs_mc/polar_bear.lua
@@ -8,6 +8,7 @@ local S = minetest.get_translator("mobs_mc")
 
 
 mobs:register_mob("mobs_mc:polar_bear", {
+	description = S("Polar Bear"),
 	type = "animal",
 	spawn_class = "passive",
 	runaway = false,
@@ -37,7 +38,7 @@ mobs:register_mob("mobs_mc:polar_bear", {
 		chance = 2,
 		min = 0,
 		max = 2,
-		looting = "common",},		
+		looting = "common",},
 		-- 1/4 to drop raw salmon
 		{name = mobs_mc.items.salmon_raw,
 		chance = 4,
diff --git a/mods/ENTITIES/mobs_mc/rabbit.lua b/mods/ENTITIES/mobs_mc/rabbit.lua
index 74bdffcd8..6b47fec70 100644
--- a/mods/ENTITIES/mobs_mc/rabbit.lua
+++ b/mods/ENTITIES/mobs_mc/rabbit.lua
@@ -3,6 +3,7 @@
 local S = minetest.get_translator("mobs_mc")
 
 local rabbit = {
+	description = S("Rabbit"),
 	type = "animal",
 	spawn_class = "passive",
 	passive = true,
@@ -83,6 +84,7 @@ mobs:register_mob("mobs_mc:rabbit", rabbit)
 
 -- The killer bunny (Only with spawn egg)
 local killer_bunny = table.copy(rabbit)
+killer_bunny.description = S("Killer Bunny")
 killer_bunny.type = "monster"
 killer_bunny.spawn_class = "hostile"
 killer_bunny.attack_type = "dogfight"
@@ -110,8 +112,8 @@ mobs:register_mob("mobs_mc:killer_bunny", killer_bunny)
 -- Different skins depending on spawn location <- we'll get to this when the spawning algorithm is fleshed out
 
 mobs:spawn_specific(
-"mobs_mc:rabbit", 
-"overworld", 
+"mobs_mc:rabbit",
+"overworld",
 "ground",
 {
 "FlowerForest",
@@ -131,12 +133,12 @@ mobs:spawn_specific(
 "ExtremeHillsM",
 "BirchForestM",
 },
-9, 
-minetest.LIGHT_MAX+1, 
-30, 
-15000, 
-8, 
-mobs_mc.spawn_height.overworld_min, 
+9,
+minetest.LIGHT_MAX+1,
+30,
+15000,
+8,
+mobs_mc.spawn_height.overworld_min,
 mobs_mc.spawn_height.overworld_max)
 
 --[[
diff --git a/mods/ENTITIES/mobs_mc/sheep.lua b/mods/ENTITIES/mobs_mc/sheep.lua
index d82df8cf9..9ddc0adee 100644
--- a/mods/ENTITIES/mobs_mc/sheep.lua
+++ b/mods/ENTITIES/mobs_mc/sheep.lua
@@ -56,6 +56,7 @@ local gotten_texture = { "blank.png", "mobs_mc_sheep.png" }
 
 --mcsheep
 mobs:register_mob("mobs_mc:sheep", {
+	description = S("Sheep"),
 	type = "animal",
 	spawn_class = "passive",
 	hp_min = 8,
@@ -325,12 +326,12 @@ mobs:spawn_specific(
 "ExtremeHillsM",
 "BirchForestM",
 },
-0, 
-minetest.LIGHT_MAX+1, 
-30, 
-15000, 
-3, 
-mobs_mc.spawn_height.overworld_min, 
+0,
+minetest.LIGHT_MAX+1,
+30,
+15000,
+3,
+mobs_mc.spawn_height.overworld_min,
 mobs_mc.spawn_height.overworld_max)
 
 -- spawn eggs
diff --git a/mods/ENTITIES/mobs_mc/shulker.lua b/mods/ENTITIES/mobs_mc/shulker.lua
index 8000d0937..0d5ad880a 100644
--- a/mods/ENTITIES/mobs_mc/shulker.lua
+++ b/mods/ENTITIES/mobs_mc/shulker.lua
@@ -10,8 +10,9 @@ local S = minetest.get_translator("mobs_mc")
 --###################
 
 -- animation 45-80 is transition between passive and attack stance
-   
+
 mobs:register_mob("mobs_mc:shulker", {
+	description = S("Shulker"),
 	type = "monster",
 	spawn_class = "hostile",
 	attack_type = "shoot",
@@ -82,16 +83,16 @@ mobs:register_arrow("mobs_mc:shulkerbullet", {
 mobs:register_egg("mobs_mc:shulker", S("Shulker"), "mobs_mc_spawn_icon_shulker.png", 0)
 
 mobs:spawn_specific(
-"mobs_mc:shulker", 
-"end", 
+"mobs_mc:shulker",
+"end",
 "ground",
 {
 "End"
 },
-0, 
-minetest.LIGHT_MAX+1, 
-30, 
-5000, 
-2, 
-mobs_mc.spawn_height.end_min, 
+0,
+minetest.LIGHT_MAX+1,
+30,
+5000,
+2,
+mobs_mc.spawn_height.end_min,
 mobs_mc.spawn_height.end_max)
diff --git a/mods/ENTITIES/mobs_mc/silverfish.lua b/mods/ENTITIES/mobs_mc/silverfish.lua
index 433211503..5af3c8aa0 100644
--- a/mods/ENTITIES/mobs_mc/silverfish.lua
+++ b/mods/ENTITIES/mobs_mc/silverfish.lua
@@ -5,6 +5,7 @@
 local S = minetest.get_translator("mobs_mc")
 
 mobs:register_mob("mobs_mc:silverfish", {
+	description = S("Silverfish"),
 	type = "monster",
 	spawn_class = "hostile",
 	passive = false,
diff --git a/mods/ENTITIES/mobs_mc/skeleton+stray.lua b/mods/ENTITIES/mobs_mc/skeleton+stray.lua
index 05b829bcd..61e1c6eb2 100644
--- a/mods/ENTITIES/mobs_mc/skeleton+stray.lua
+++ b/mods/ENTITIES/mobs_mc/skeleton+stray.lua
@@ -13,6 +13,7 @@ local mod_bows = minetest.get_modpath("mcl_bows") ~= nil
 
 
 local skeleton = {
+	description = S("Skeleton"),
 	type = "monster",
 	spawn_class = "hostile",
 	hp_min = 20,
@@ -109,6 +110,7 @@ mobs:register_mob("mobs_mc:skeleton", skeleton)
 --###################
 
 local stray = table.copy(skeleton)
+stray.description = S("Stray")
 stray.mesh = "mobs_mc_skeleton.b3d"
 stray.textures = {
 	{
diff --git a/mods/ENTITIES/mobs_mc/skeleton_wither.lua b/mods/ENTITIES/mobs_mc/skeleton_wither.lua
index c089850f4..1c0bdbea1 100644
--- a/mods/ENTITIES/mobs_mc/skeleton_wither.lua
+++ b/mods/ENTITIES/mobs_mc/skeleton_wither.lua
@@ -10,6 +10,7 @@ local S = minetest.get_translator("mobs_mc")
 --###################
 
 mobs:register_mob("mobs_mc:witherskeleton", {
+	description = S("Wither Skeleton"),
 	type = "monster",
 	spawn_class = "hostile",
 	hp_min = 20,
diff --git a/mods/ENTITIES/mobs_mc/slime+magma_cube.lua b/mods/ENTITIES/mobs_mc/slime+magma_cube.lua
index 6c8000a50..28621ee6f 100644
--- a/mods/ENTITIES/mobs_mc/slime+magma_cube.lua
+++ b/mods/ENTITIES/mobs_mc/slime+magma_cube.lua
@@ -56,6 +56,7 @@ end
 
 -- Slime
 local slime_big = {
+	description = S("Slime"),
 	type = "monster",
 	spawn_class = "hostile",
 	pathfinding = 1,
@@ -158,8 +159,8 @@ local smin = mobs_mc.spawn_height.overworld_min
 local smax = mobs_mc.spawn_height.water - 23
 
 mobs:spawn_specific(
-"mobs_mc:slime_tiny", 
-"overworld", 
+"mobs_mc:slime_tiny",
+"overworld",
 "ground",
 {
 "FlowerForest_underground",
@@ -193,17 +194,17 @@ mobs:spawn_specific(
 "ExtremeHillsM_underground",
 "JungleEdgeM_underground",
 },
-0, 
-minetest.LIGHT_MAX+1, 
-30, 
-12000, 
-4, 
-smin, 
+0,
+minetest.LIGHT_MAX+1,
+30,
+12000,
+4,
+smin,
 smax)
 
 mobs:spawn_specific(
-"mobs_mc:slime_small", 
-"overworld", 
+"mobs_mc:slime_small",
+"overworld",
 "ground",
 {
 "FlowerForest_underground",
@@ -236,19 +237,19 @@ mobs:spawn_specific(
 "JungleM_underground",
 "ExtremeHillsM_underground",
 "JungleEdgeM_underground",
-}, 
-0, 
-minetest.LIGHT_MAX+1, 
-30, 
-8500, 
-4, 
-smin, 
+},
+0,
+minetest.LIGHT_MAX+1,
+30,
+8500,
+4,
+smin,
 smax)
 
 mobs:spawn_specific(
-"mobs_mc:slime_big", 
-"overworld", 
-"ground", 
+"mobs_mc:slime_big",
+"overworld",
+"ground",
 {
 "FlowerForest_underground",
 "JungleEdge_underground",
@@ -281,16 +282,17 @@ mobs:spawn_specific(
 "ExtremeHillsM_underground",
 "JungleEdgeM_underground",
 },
-0, 
-minetest.LIGHT_MAX+1, 
-30, 
-10000, 
-4, 
-smin, 
+0,
+minetest.LIGHT_MAX+1,
+30,
+10000,
+4,
+smin,
 smax)
 
 -- Magma cube
 local magma_cube_big = {
+	description = S("Magma Cube"),
 	type = "monster",
 	spawn_class = "hostile",
 	hp_min = 16,
@@ -401,49 +403,49 @@ local mmin = mobs_mc.spawn_height.nether_min
 local mmax = mobs_mc.spawn_height.nether_max
 
 mobs:spawn_specific(
-"mobs_mc:magma_cube_tiny", 
-"nether", 
+"mobs_mc:magma_cube_tiny",
+"nether",
 "ground",
 {
 "Nether"
 },
-0, 
-minetest.LIGHT_MAX+1, 
-30, 
-15000, 
-4, 
-mmin, 
+0,
+minetest.LIGHT_MAX+1,
+30,
+15000,
+4,
+mmin,
 mmax)
 
 
 mobs:spawn_specific(
-"mobs_mc:magma_cube_small", 
-"nether", 
+"mobs_mc:magma_cube_small",
+"nether",
 "ground",
 {
 "Nether"
 },
-0, 
-minetest.LIGHT_MAX+1, 
-30, 
-15500, 
-4, 
-mmin, 
+0,
+minetest.LIGHT_MAX+1,
+30,
+15500,
+4,
+mmin,
 mmax)
 
 mobs:spawn_specific(
-"mobs_mc:magma_cube_big", 
-"nether", 
+"mobs_mc:magma_cube_big",
+"nether",
 "ground",
 {
 "Nether"
-},	
-0, 
-minetest.LIGHT_MAX+1, 
-30, 
-16000, 
-4, 
-mmin, 
+},
+0,
+minetest.LIGHT_MAX+1,
+30,
+16000,
+4,
+mmin,
 mmax)
 
 --mobs:spawn_specific("mobs_mc:magma_cube_tiny", mobs_mc.spawn.nether_fortress, {"air"}, 0, minetest.LIGHT_MAX+1, 30, 11000, 4, mmin, mmax)
diff --git a/mods/ENTITIES/mobs_mc/snowman.lua b/mods/ENTITIES/mobs_mc/snowman.lua
index 1ee88b362..93f91c330 100644
--- a/mods/ENTITIES/mobs_mc/snowman.lua
+++ b/mods/ENTITIES/mobs_mc/snowman.lua
@@ -21,6 +21,7 @@ local gotten_texture = {
 }
 
 mobs:register_mob("mobs_mc:snowman", {
+	description = S("Snow Golem"),
 	type = "npc",
 	spawn_class = "passive",
 	passive = true,
diff --git a/mods/ENTITIES/mobs_mc/spider.lua b/mods/ENTITIES/mobs_mc/spider.lua
index bb5e29eb1..c1cb5be4b 100644
--- a/mods/ENTITIES/mobs_mc/spider.lua
+++ b/mods/ENTITIES/mobs_mc/spider.lua
@@ -13,6 +13,7 @@ local S = minetest.get_translator("mobs_mc")
 -- Spider by AspireMint (fishyWET (CC-BY-SA 3.0 license for texture)
 
 local spider = {
+	description = S("Spider"),
 	type = "monster",
 	spawn_class = "hostile",
 	passive = false,
@@ -72,6 +73,7 @@ mobs:register_mob("mobs_mc:spider", spider)
 
 -- Cave spider
 local cave_spider = table.copy(spider)
+cave_spider.description = S("Cave Spider")
 cave_spider.textures = { {"mobs_mc_cave_spider.png^(mobs_mc_spider_eyes.png^[makealpha:0,0,0)"} }
 -- TODO: Poison damage
 -- TODO: Revert damage to 2
@@ -88,8 +90,8 @@ mobs:register_mob("mobs_mc:cave_spider", cave_spider)
 
 
 mobs:spawn_specific(
-"mobs_mc:spider", 
-"overworld", 
+"mobs_mc:spider",
+"overworld",
 "ground",
 {
 "Mesa",
@@ -232,12 +234,12 @@ mobs:spawn_specific(
 "ExtremeHillsM_underground",
 "JungleEdgeM_underground",
 },
-0, 
-7, 
-30, 
-17000, 
-2, 
-mobs_mc.spawn_height.overworld_min, 
+0,
+7,
+30,
+17000,
+2,
+mobs_mc.spawn_height.overworld_min,
 mobs_mc.spawn_height.overworld_max)
 
 -- spawn eggs
diff --git a/mods/ENTITIES/mobs_mc/squid.lua b/mods/ENTITIES/mobs_mc/squid.lua
index cf794ea5b..0c425bb51 100644
--- a/mods/ENTITIES/mobs_mc/squid.lua
+++ b/mods/ENTITIES/mobs_mc/squid.lua
@@ -7,6 +7,7 @@
 local S = minetest.get_translator("mobs_mc")
 
 mobs:register_mob("mobs_mc:squid", {
+	description = S("Squid"),
     type = "animal",
     spawn_class = "water",
     can_despawn = true,
diff --git a/mods/ENTITIES/mobs_mc/vex.lua b/mods/ENTITIES/mobs_mc/vex.lua
index cccdebe7a..a72827d5d 100644
--- a/mods/ENTITIES/mobs_mc/vex.lua
+++ b/mods/ENTITIES/mobs_mc/vex.lua
@@ -10,6 +10,7 @@ local S = minetest.get_translator("mobs_mc")
 --###################
 
 mobs:register_mob("mobs_mc:vex", {
+	description = S("Vex"),
 	type = "monster",
 	spawn_class = "hostile",
 	pathfinding = 1,
diff --git a/mods/ENTITIES/mobs_mc/villager.lua b/mods/ENTITIES/mobs_mc/villager.lua
index ab79edfec..db9cf3b19 100644
--- a/mods/ENTITIES/mobs_mc/villager.lua
+++ b/mods/ENTITIES/mobs_mc/villager.lua
@@ -927,6 +927,7 @@ end)
 --[=======[ MOB REGISTRATION AND SPAWNING ]=======]
 
 mobs:register_mob("mobs_mc:villager", {
+	description = S("Villager"),
 	type = "npc",
 	spawn_class = "passive",
 	hp_min = 20,
diff --git a/mods/ENTITIES/mobs_mc/villager_evoker.lua b/mods/ENTITIES/mobs_mc/villager_evoker.lua
index abe0e9ca2..04c95b88f 100644
--- a/mods/ENTITIES/mobs_mc/villager_evoker.lua
+++ b/mods/ENTITIES/mobs_mc/villager_evoker.lua
@@ -12,6 +12,7 @@ local S = minetest.get_translator("mobs_mc")
 local pr = PseudoRandom(os.time()*666)
 
 mobs:register_mob("mobs_mc:evoker", {
+	description = S("Evoker"),
 	type = "monster",
 	spawn_class = "hostile",
 	physical = true,
diff --git a/mods/ENTITIES/mobs_mc/villager_illusioner.lua b/mods/ENTITIES/mobs_mc/villager_illusioner.lua
index 0bbe2a5f6..496f08fc6 100644
--- a/mods/ENTITIES/mobs_mc/villager_illusioner.lua
+++ b/mods/ENTITIES/mobs_mc/villager_illusioner.lua
@@ -7,6 +7,7 @@ local S = minetest.get_translator("mobs_mc")
 local mod_bows = minetest.get_modpath("mcl_bows") ~= nil
 
 mobs:register_mob("mobs_mc:illusioner", {
+	description = S("Illusioner"),
 	type = "monster",
 	spawn_class = "hostile",
 	attack_type = "shoot",
diff --git a/mods/ENTITIES/mobs_mc/villager_vindicator.lua b/mods/ENTITIES/mobs_mc/villager_vindicator.lua
index 56b295066..276f80011 100644
--- a/mods/ENTITIES/mobs_mc/villager_vindicator.lua
+++ b/mods/ENTITIES/mobs_mc/villager_vindicator.lua
@@ -11,6 +11,7 @@ local S = minetest.get_translator("mobs_mc")
 
 
 mobs:register_mob("mobs_mc:vindicator", {
+	description = S("Vindicator"),
 	type = "monster",
 	spawn_class = "hostile",
 	physical = false,
diff --git a/mods/ENTITIES/mobs_mc/villager_zombie.lua b/mods/ENTITIES/mobs_mc/villager_zombie.lua
index b90823629..1948b693d 100644
--- a/mods/ENTITIES/mobs_mc/villager_zombie.lua
+++ b/mods/ENTITIES/mobs_mc/villager_zombie.lua
@@ -26,6 +26,7 @@ local professions = {
 }
 
 mobs:register_mob("mobs_mc:villager_zombie", {
+	description = S("Zombie Villager"),
 	type = "monster",
 	spawn_class = "hostile",
 	hp_min = 20,
diff --git a/mods/ENTITIES/mobs_mc/witch.lua b/mods/ENTITIES/mobs_mc/witch.lua
index f9f9b8d1f..8ebe71fc0 100644
--- a/mods/ENTITIES/mobs_mc/witch.lua
+++ b/mods/ENTITIES/mobs_mc/witch.lua
@@ -13,6 +13,7 @@ local S = minetest.get_translator("mobs_mc")
 
 
 mobs:register_mob("mobs_mc:witch", {
+	description = S("Witch"),
 	type = "monster",
 	spawn_class = "hostile",
 	hp_min = 26,
diff --git a/mods/ENTITIES/mobs_mc/wither.lua b/mods/ENTITIES/mobs_mc/wither.lua
index 2d53cc547..72459a354 100644
--- a/mods/ENTITIES/mobs_mc/wither.lua
+++ b/mods/ENTITIES/mobs_mc/wither.lua
@@ -10,6 +10,7 @@ local S = minetest.get_translator("mobs_mc")
 --###################
 
 mobs:register_mob("mobs_mc:wither", {
+	description = S("Wither"),
 	type = "monster",
 	spawn_class = "hostile",
 	hp_max = 300,
diff --git a/mods/ENTITIES/mobs_mc/wolf.lua b/mods/ENTITIES/mobs_mc/wolf.lua
index b1c077d46..7f14ac6b0 100644
--- a/mods/ENTITIES/mobs_mc/wolf.lua
+++ b/mods/ENTITIES/mobs_mc/wolf.lua
@@ -19,6 +19,7 @@ end
 
 -- Wolf
 local wolf = {
+	description = S("Wolf"),
 	type = "animal",
 	spawn_class = "passive",
 	can_despawn = true,
@@ -138,7 +139,7 @@ dog.owner = ""
 -- TODO: Start sitting by default
 dog.order = "roam"
 dog.owner_loyal = true
-dog.follow_velocity = 3.2 
+dog.follow_velocity = 3.2
 -- Automatically teleport dog to owner
 dog.do_custom = mobs_mc.make_owner_teleport_function(12)
 dog.follow = mobs_mc.follow.dog
@@ -254,12 +255,12 @@ mobs:spawn_specific(
 "ExtremeHillsM",
 "BirchForestM",
 },
-0, 
-minetest.LIGHT_MAX+1, 
-30, 
-9000, 
-7, 
-mobs_mc.spawn_height.water+3, 
+0,
+minetest.LIGHT_MAX+1,
+30,
+9000,
+7,
+mobs_mc.spawn_height.water+3,
 mobs_mc.spawn_height.overworld_max)
 
 mobs:register_egg("mobs_mc:wolf", S("Wolf"), "mobs_mc_spawn_icon_wolf.png", 0)
diff --git a/mods/ENTITIES/mobs_mc/zombie.lua b/mods/ENTITIES/mobs_mc/zombie.lua
index 1be47848b..4ae5796b3 100644
--- a/mods/ENTITIES/mobs_mc/zombie.lua
+++ b/mods/ENTITIES/mobs_mc/zombie.lua
@@ -46,6 +46,7 @@ table.insert(drops_zombie, {
 })
 
 local zombie = {
+	description = S("Zombie"),
 	type = "monster",
 	spawn_class = "hostile",
 	hp_min = 20,
@@ -102,6 +103,7 @@ mobs:register_mob("mobs_mc:zombie", zombie)
 -- A smaller and more dangerous variant of the zombie
 
 local baby_zombie = table.copy(zombie)
+baby_zombie.description = S("Baby Zombie")
 baby_zombie.collisionbox = {-0.25, -0.01, -0.25, 0.25, 0.94, 0.25}
 baby_zombie.xp_min = 12
 baby_zombie.xp_max = 12
@@ -115,6 +117,7 @@ mobs:register_mob("mobs_mc:baby_zombie", baby_zombie)
 -- Husk.
 -- Desert variant of the zombie
 local husk = table.copy(zombie)
+husk.description = S("Husk")
 husk.textures = {
 		{
 			"mobs_mc_empty.png", -- armor
@@ -132,6 +135,7 @@ mobs:register_mob("mobs_mc:husk", husk)
 -- Baby husk.
 -- A smaller and more dangerous variant of the husk
 local baby_husk = table.copy(husk)
+baby_husk.description = S("Baby Husk")
 baby_husk.collisionbox = {-0.25, -0.01, -0.25, 0.25, 0.94, 0.25}
 baby_husk.xp_min = 12
 baby_husk.xp_max = 12
diff --git a/mods/ENTITIES/mobs_mc/zombiepig.lua b/mods/ENTITIES/mobs_mc/zombiepig.lua
index ebd8ce485..1ea4197c1 100644
--- a/mods/ENTITIES/mobs_mc/zombiepig.lua
+++ b/mods/ENTITIES/mobs_mc/zombiepig.lua
@@ -11,6 +11,7 @@ local S = minetest.get_translator("mobs_mc")
 
 
 local pigman = {
+	description = S("Zombie Pigman"),
 	-- type="animal", passive=false: This combination is needed for a neutral mob which becomes hostile, if attacked
 	type = "animal",
 	passive = false,
@@ -94,6 +95,7 @@ mobs:register_mob("mobs_mc:pigman", pigman)
 -- A smaller and more dangerous variant of the pigman
 
 local baby_pigman = table.copy(pigman)
+baby_pigman.description = S("Baby Zombie Pigman")
 baby_pigman.collisionbox = {-0.25, -0.01, -0.25, 0.25, 0.94, 0.25}
 baby_pigman.xp_min = 13
 baby_pigman.xp_max = 13
@@ -112,33 +114,33 @@ mobs:register_mob("mobs_mc:baby_pigman", baby_pigman)
 
 -- Regular spawning in the Nether
 mobs:spawn_specific(
-"mobs_mc:pigman", 
-"nether", 
+"mobs_mc:pigman",
+"nether",
 "ground",
 {
 "Nether"
 },
-0, 
+0,
 minetest.LIGHT_MAX+1,
-30, 
-6000, 
-3, 
-mobs_mc.spawn_height.nether_min, 
+30,
+6000,
+3,
+mobs_mc.spawn_height.nether_min,
 mobs_mc.spawn_height.nether_max)
 -- Baby zombie is 20 times less likely than regular zombies
 mobs:spawn_specific(
-"mobs_mc:baby_pigman", 
-"nether", 
+"mobs_mc:baby_pigman",
+"nether",
 "ground",
 {
 "Nether"
-}, 
-0, 
-minetest.LIGHT_MAX+1, 
-30, 
-100000, 
-4, 
-mobs_mc.spawn_height.nether_min, 
+},
+0,
+minetest.LIGHT_MAX+1,
+30,
+100000,
+4,
+mobs_mc.spawn_height.nether_min,
 mobs_mc.spawn_height.nether_max)
 
 -- Spawning in Nether portals in the Overworld