diff --git a/mods/PLAYER/mcl_cozy/init.lua b/mods/PLAYER/mcl_cozy/init.lua
index 0ea8b67a0..6d663da6d 100644
--- a/mods/PLAYER/mcl_cozy/init.lua
+++ b/mods/PLAYER/mcl_cozy/init.lua
@@ -1,4 +1,6 @@
 local S = core.get_translator(core.get_current_modname())
+local N = function(s) return s end
+
 local mcl_cozy_sit_on_stairs = core.settings:get_bool("mcl_cozy_sit_on_stairs", true)
 local mcl_cozy_print_actions = core.settings:get_bool("mcl_cozy_print_actions", false)
 
@@ -9,14 +11,14 @@ local DISTANCE_THRESHOLD = 3
 local VELOCITY_THRESHOLD = 0.125
 local PLAYERSP_THRESHOLD = 0.1
 
--- used to partially avoid a race condition(?) causing the player animation to not be set properly when mounting onto
--- a block (e.g. stair)
+-- used to partially avoid a race condition(?) causing the player animation to
+-- not be set properly when mounting onto a block (e.g. stair)
 local ACTION_APPLY_DELAY = 0.05
 
 mcl_cozy = {}
 mcl_cozy.players = {}
 
--- backwards compatibility
+-- backwards compatibility w/ mcl_cozy 3.0.0
 mcl_cozy.pos = setmetatable({}, {
 	__index = function(_, name)
 		return mcl_cozy.players[name] and mcl_cozy.players[name][1]
@@ -28,7 +30,7 @@ local actions = {
 	["sit"] = {
 		description = S("Sit down"),
 		message = {
-			chat = "@1 sits",
+			chat = N("@1 sits"),
 			actionbar = {
 				distance_fail = S("You can't sit, the block's too far away!"),
 				movement_fail = S("You have to stop moving before sitting down!"),
@@ -42,7 +44,7 @@ local actions = {
 	["lay"] = {
 		description = S("Lie down"),
 		message = {
-			chat = "@1 lies",
+			chat = N("@1 lies"),
 			actionbar = {
 				distance_fail = S("You can't lay, the block's too far away!"),
 				movement_fail = S("You have to stop moving before lying down!"),
@@ -64,22 +66,21 @@ end
 local function is_air_below(player)
 	return mcl_playerinfo[player:get_player_name()].node_stand == "air"
 end
---[[if mcl_player.players then
-	is_attached = function(player)
-		return mcl_player.players[player].attached
-	end
-	set_attach = function(player, bool)
-		mcl_player.players[player].attached = bool
-	end
-	is_air_below = function(player)
-		return mcl_player.players[player].nodes.stand == "air"
-	end
+--[[ for MCLA's mcl_player rewrite
+local function is_attached(player)
+	return mcl_player.players[player].attached
+end
+local function set_attach(player, bool)
+	mcl_player.players[player].attached = bool
+end
+local function is_air_below(player)
+	return mcl_player.players[player].nodes.stand == "air"
 end]]
 
 function mcl_cozy.print_action(name, action)
 	if not mcl_cozy_print_actions then return end
 
-	local msg = "@1 stands up"
+	local msg = N("@1 stands up")
 	if actions[action] then
 		msg = actions[action].message.chat
 	end
@@ -214,17 +215,13 @@ end
 
 core.register_globalstep(function(dtime)
 	for _, player in ipairs(core.get_connected_players()) do
-		local name = player:get_player_name()
-		local ctrl = player:get_player_control()
+		if mcl_cozy.players[player:get_player_name()] then
+			local ctrl = player:get_player_control()
 
-		if mcl_cozy.players[name] then
 			-- unmount when player tries to move
-			if (ctrl.up == true or ctrl.down == true or
-					ctrl.left == true or ctrl.right == true or
-					ctrl.jump == true or ctrl.sneak == true) then
-				mcl_cozy.stand_up(player)
-			-- check the node below player (and if it's air, just unmount)
-			elseif is_air_below(player) then
+			if (ctrl.up or ctrl.down or ctrl.left or ctrl.right or ctrl.jump or ctrl.sneak)
+					-- unmount when there's air below
+					or is_air_below(player) then
 				mcl_cozy.stand_up(player)
 			end
 		end
@@ -233,10 +230,9 @@ end)
 
 -- fix players getting stuck after they leave while still sitting
 core.register_on_joinplayer(function(player)
-	local name = player:get_player_name()
 	playerphysics.remove_physics_factor(player, "speed", "mcl_cozy:attached")
 	playerphysics.remove_physics_factor(player, "jump", "mcl_cozy:attached")
-	mcl_cozy.players[name] = nil
+	mcl_cozy.players[player:get_player_name()] = nil
 end)
 
 if core.get_modpath("mcl_stairs") and mcl_cozy_sit_on_stairs then
diff --git a/mods/PLAYER/mcl_cozy/stairs_slabs.lua b/mods/PLAYER/mcl_cozy/stairs_slabs.lua
index 2d2d724be..09b8cdd78 100644
--- a/mods/PLAYER/mcl_cozy/stairs_slabs.lua
+++ b/mods/PLAYER/mcl_cozy/stairs_slabs.lua
@@ -1,3 +1,5 @@
+-- only loaded if core.settings:get_bool("mcl_cozy_sit_on_stairs")
+
 local function check_param2_and_sit(pos, ...)
 	local param2 = core.get_node(pos).param2
 	-- avoid inverted stairs
@@ -6,7 +8,7 @@ local function check_param2_and_sit(pos, ...)
 end
 
 core.register_on_mods_loaded(function()
-	for name, def in pairs(core.registered_nodes) do
+	for name, _ in pairs(core.registered_nodes) do
 		-- bottom slabs
 		if name:find("^mcl_stairs:slab") and not (name:find("_top$")) then
 			core.override_item(name, {