diff --git a/mods/ENTITIES/mcl_mobs/api.lua b/mods/ENTITIES/mcl_mobs/api.lua
index ea9235391..a046a1205 100644
--- a/mods/ENTITIES/mcl_mobs/api.lua
+++ b/mods/ENTITIES/mcl_mobs/api.lua
@@ -101,6 +101,29 @@ local mod_worlds = minetest.get_modpath("mcl_worlds") ~= nil
 local mod_armor = minetest.get_modpath("mcl_armor") ~= nil
 local mod_experience = minetest.get_modpath("mcl_experience") ~= nil
 
+--Helper function to clear all mobs because /clearobjects removes too much
+local function is_mob(o)
+	return o.type == "ambient" or o.type == "animal" or o.type == "monster" or o.type == "npc"
+end
+minetest.register_chatcommand("clearmobs",{
+	privs={maphack=true},
+	params = "<all>|<nametagged>|<range>",
+	description=S("Removes all spawned mobs except nametagged and tamed ones. all removes all mobs, nametagged only nametagged ones and with the range paramter all mobs in a distance of the current player are removed."),
+	func=function(n,param)
+		local p = minetest.get_player_by_name(n)
+		local num=tonumber(param)
+		for _,o in pairs(minetest.luaentities) do
+			if is_mob(o) then
+				if  param == "all" or
+				( param == "nametagged" and o.nametag ) or
+				( param == "" and not o.nametag and not o.tamed ) or
+				( num and num > 0 and vector.distance(p:get_pos(),o.object:get_pos()) <= num ) then
+					o.object:remove()
+				end
+			end
+		end
+end})
+
 ----For Water Flowing:
 local enable_physics = function(object, luaentity, ignore_check)
 	if luaentity.physical_state == false or ignore_check == true then