for nodename,nodedef in pairs(minetest.registered_nodes) do
	if nodedef ~= nil and nodedef.drowning ~= 0 then
		for breathing_group,monoid in pairs(alternate_breathing_methods.monoids) do
			group_value = get_node_group(nodename,breathing_group)
			if group_value >= 0 then
				nodedef.drowning = 0
				minetest.register_node(":" .. nodename, nodedef)
				break
			end
		end
	end
end
is a modified version of:
local function make_water_breathable()
	local num_modified_nodes = 0

	for nodename,nodedef in pairs(minetest.registered_nodes)
	do
		--[[
		The minetest.registered_nodes lua table is a _copy_ of what the game engine sees.	Modifying it does NOT affect actual in-engine gameplay.
		
		Instead we have to re-register the node again after editing it, using a special syntax (":" in front of the node name) to tell the engine that we want to overwrite the existing definition.  See https://forum.minetest.net/viewtopic.php?t=4418 (and beware that not all of the answers there work).	
		]]--
		if nodedef ~= nil and nodedef.drowning ~= 0
		then
			print("nodrown: Disabling drowning on node " .. nodename)
			nodedef.drowning = 0
			minetest.register_node(":" .. nodename, nodedef)
			num_modified_nodes = num_modified_nodes + 1
		end
	end
	
	print("nodrown: Modified " .. num_modified_nodes .. " nodes")
end
from nodrown by Minisleep(https://content.minetest.net/users/Minisleep/)