diff --git a/mods/ITEMS/mcl_ocean/kelp.lua b/mods/ITEMS/mcl_ocean/kelp.lua
index 7bffb0e3d..a0a2d76d2 100644
--- a/mods/ITEMS/mcl_ocean/kelp.lua
+++ b/mods/ITEMS/mcl_ocean/kelp.lua
@@ -53,7 +53,10 @@ mcl_ocean.kelp = kelp
 -- Once reach the maximum, kelp no longer grows.
 kelp.MIN_AGE = 0
 kelp.MAX_AGE = 25
-kelp.MAX_HEIGHT = 16
+
+-- Named constant for maximum height the engine allows kelp to grow
+local MAX_HEIGHT = 16
+kelp.MAX_HEIGHT = MAX_HEIGHT
 
 kelp.TICK = 0.2 -- Tick interval (in seconds) for updating kelp.
 
@@ -374,18 +377,15 @@ local function detach_unsubmerged(pos)
 end
 
 function kelp.remove_kelp_below_structure(minp, maxp)
-	local minp = vector.offset(minp, 0, -kelp.MAX_HEIGHT - 1, 0)
-	local kelp_pos_list,_ = minetest.find_nodes_in_area(minp, maxp, {"group:kelp"})
+	local minp = vector.offset(minp, 0, -MAX_HEIGHT - 1, 0)
+	local kelp_pos_list,_ = core.find_nodes_in_area(minp, maxp, {"group:kelp"})
 
-	for i = 1,#kelp_pos_list do
-		local kelp_pos = kelp_pos_list[i]
-		local kelp_node = minetest.get_node(kelp_pos)
+	for _,kelp_pos in ipairs(kelp_pos_list) do
+		local kelp_node = core.get_node(kelp_pos)
 
-		minetest.swap_node(kelp_pos, {
-			name = minetest.registered_nodes[kelp_node.name].node_dig_prediction,
-			param = kelp_node.param,
-			param2 = 0,
-		})
+		-- Convert kelp back to normal node
+		kelp_node.name = core.registered_nodes[kelp_node.name].node_dig_prediction
+		core.swap_node(kelp_pos, kelp_node)
 	end
 end