diff --git a/baystation12.dme b/baystation12.dme
index cc6d10ca41a..f8f9a61b90f 100644
--- a/baystation12.dme
+++ b/baystation12.dme
@@ -2332,6 +2332,43 @@
 #include "code\modules\mob\observer\virtual\base.dm"
 #include "code\modules\mob\observer\virtual\helpers.dm"
 #include "code\modules\mob\observer\virtual\mob.dm"
+#include "code\modules\mob\organs\_organ_setup.dm"
+#include "code\modules\mob\organs\blood.dm"
+#include "code\modules\mob\organs\organ.dm"
+#include "code\modules\mob\organs\pain.dm"
+#include "code\modules\mob\organs\robolimbs.dm"
+#include "code\modules\mob\organs\external\_external.dm"
+#include "code\modules\mob\organs\external\_external_damage.dm"
+#include "code\modules\mob\organs\external\_external_icons.dm"
+#include "code\modules\mob\organs\external\diona.dm"
+#include "code\modules\mob\organs\external\head.dm"
+#include "code\modules\mob\organs\external\standard.dm"
+#include "code\modules\mob\organs\external\stump.dm"
+#include "code\modules\mob\organs\external\unbreakable.dm"
+#include "code\modules\mob\organs\external\vox.dm"
+#include "code\modules\mob\organs\external\xenos.dm"
+#include "code\modules\mob\organs\external\wounds\wound.dm"
+#include "code\modules\mob\organs\external\wounds\wound_types.dm"
+#include "code\modules\mob\organs\internal\_internal.dm"
+#include "code\modules\mob\organs\internal\appendix.dm"
+#include "code\modules\mob\organs\internal\borer.dm"
+#include "code\modules\mob\organs\internal\brain.dm"
+#include "code\modules\mob\organs\internal\cerebrum.dm"
+#include "code\modules\mob\organs\internal\embryo.dm"
+#include "code\modules\mob\organs\internal\eyes.dm"
+#include "code\modules\mob\organs\internal\golem.dm"
+#include "code\modules\mob\organs\internal\heart.dm"
+#include "code\modules\mob\organs\internal\kidneys.dm"
+#include "code\modules\mob\organs\internal\liver.dm"
+#include "code\modules\mob\organs\internal\lungs.dm"
+#include "code\modules\mob\organs\internal\machine.dm"
+#include "code\modules\mob\organs\internal\man_machine_interface.dm"
+#include "code\modules\mob\organs\internal\metroid_jelly_vessel.dm"
+#include "code\modules\mob\organs\internal\posibrain.dm"
+#include "code\modules\mob\organs\internal\stack.dm"
+#include "code\modules\mob\organs\internal\stomach.dm"
+#include "code\modules\mob\organs\internal\voicebox.dm"
+#include "code\modules\mob\organs\internal\vox.dm"
 #include "code\modules\mob_spawn\mob_spawn.dm"
 #include "code\modules\mob_spawn\ghost_roles\golem_roles.dm"
 #include "code\modules\mob_spawn\ghost_roles\spider_roles.dm"
@@ -2448,43 +2485,6 @@
 #include "code\modules\nano\modules\human_appearance.dm"
 #include "code\modules\nano\modules\law_manager.dm"
 #include "code\modules\nano\modules\nano_module.dm"
-#include "code\modules\organs\_organ_setup.dm"
-#include "code\modules\organs\blood.dm"
-#include "code\modules\organs\organ.dm"
-#include "code\modules\organs\pain.dm"
-#include "code\modules\organs\robolimbs.dm"
-#include "code\modules\organs\external\_external.dm"
-#include "code\modules\organs\external\_external_damage.dm"
-#include "code\modules\organs\external\_external_icons.dm"
-#include "code\modules\organs\external\diona.dm"
-#include "code\modules\organs\external\head.dm"
-#include "code\modules\organs\external\standard.dm"
-#include "code\modules\organs\external\stump.dm"
-#include "code\modules\organs\external\unbreakable.dm"
-#include "code\modules\organs\external\vox.dm"
-#include "code\modules\organs\external\xenos.dm"
-#include "code\modules\organs\external\wounds\wound.dm"
-#include "code\modules\organs\external\wounds\wound_types.dm"
-#include "code\modules\organs\internal\_internal.dm"
-#include "code\modules\organs\internal\appendix.dm"
-#include "code\modules\organs\internal\borer.dm"
-#include "code\modules\organs\internal\brain.dm"
-#include "code\modules\organs\internal\cerebrum.dm"
-#include "code\modules\organs\internal\embryo.dm"
-#include "code\modules\organs\internal\eyes.dm"
-#include "code\modules\organs\internal\golem.dm"
-#include "code\modules\organs\internal\heart.dm"
-#include "code\modules\organs\internal\kidneys.dm"
-#include "code\modules\organs\internal\liver.dm"
-#include "code\modules\organs\internal\lungs.dm"
-#include "code\modules\organs\internal\machine.dm"
-#include "code\modules\organs\internal\man_machine_interface.dm"
-#include "code\modules\organs\internal\metroid_jelly_vessel.dm"
-#include "code\modules\organs\internal\posibrain.dm"
-#include "code\modules\organs\internal\stack.dm"
-#include "code\modules\organs\internal\stomach.dm"
-#include "code\modules\organs\internal\voicebox.dm"
-#include "code\modules\organs\internal\vox.dm"
 #include "code\modules\paperwork\adminpaper.dm"
 #include "code\modules\paperwork\carbonpaper.dm"
 #include "code\modules\paperwork\clipboard.dm"
diff --git a/code/__defines/modifiers.dm b/code/__defines/modifiers.dm
index 0b1bcecc21f..e3d88d2b67d 100644
--- a/code/__defines/modifiers.dm
+++ b/code/__defines/modifiers.dm
@@ -1,3 +1,5 @@
+#define MODIFIER_GENETIC	1	// Modifiers with this flag will be copied to mobs who get cloned.
+
 #define MODIFIER_STACK_FORBID	1	// Disallows stacking entirely.
 #define MODIFIER_STACK_EXTEND	2	// Disallows a second instance, but will extend the first instance if possible.
 #define MODIFIER_STACK_ALLOWED	3	// Multiple instances are allowed.
diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm
index eb5c1b434aa..58d3d6ca836 100644
--- a/code/_onclick/click.dm
+++ b/code/_onclick/click.dm
@@ -483,12 +483,6 @@
 /mob
 	var/datum/stack/click_handlers
 
-/mob/Destroy()
-	if(click_handlers)
-		click_handlers.QdelClear()
-		QDEL_NULL(click_handlers)
-	. = ..()
-
 var/const/CLICK_HANDLER_NONE                 = 0
 var/const/CLICK_HANDLER_REMOVE_ON_MOB_LOGOUT = 1
 var/const/CLICK_HANDLER_ALL                  = (~0)
diff --git a/code/_onclick/hud/ability_screen_objects.dm b/code/_onclick/hud/ability_screen_objects.dm
index 75556ad8b8c..dc84b7aad66 100644
--- a/code/_onclick/hud/ability_screen_objects.dm
+++ b/code/_onclick/hud/ability_screen_objects.dm
@@ -199,12 +199,6 @@
 			return VP
 	return null
 
-/mob/Login()
-	..()
-	if(ability_master)
-		ability_master.update_abilities(1, src)
-		ability_master.toggle_open(1)
-
 /mob/Initialize()
 	. = ..()
 	ability_master = new /obj/screen/movable/ability_master(null,src)
diff --git a/code/_onclick/hud/skybox.dm b/code/_onclick/hud/skybox.dm
index 80a44b6ff05..43e6fabc31d 100644
--- a/code/_onclick/hud/skybox.dm
+++ b/code/_onclick/hud/skybox.dm
@@ -83,16 +83,3 @@
 	. = ..()
 	if(. && skybox)
 		skybox.update()
-
-/mob/Login()
-	if(!skybox)
-		skybox = new(src)
-		skybox.owner = src
-	client.screen += skybox
-	..()
-
-/mob/Destroy()
-	if(client)
-		client.screen -= skybox
-	QDEL_NULL(skybox)
-	return ..()
diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index 4b313e956ac..d23ef095afc 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -156,6 +156,10 @@
 
 	update_icon()
 
+/obj/structure/closet/Destroy()
+	QDEL_NULL(cdoor)
+	return ..()
+
 /obj/structure/closet/proc/WillContain()
 	return null
 
diff --git a/code/game/objects/structures/inflatable.dm b/code/game/objects/structures/inflatable.dm
index bd05c891937..f7921dd05a1 100644
--- a/code/game/objects/structures/inflatable.dm
+++ b/code/game/objects/structures/inflatable.dm
@@ -116,7 +116,9 @@
 
 	for(var/check_dir in GLOB.cardinal)
 		var/turf/T = get_step(get_turf(src), check_dir)
-		var/datum/gas_mixture/env = T.return_air()
+		var/datum/gas_mixture/env = T?.return_air()
+		if(!env)
+			continue
 		var/pressure = env.return_pressure()
 		min_pressure = min(min_pressure, pressure)
 		max_pressure = max(max_pressure, pressure)
diff --git a/code/modules/mob/living/carbon/human/human_species.dm b/code/modules/mob/living/carbon/human/human_species.dm
index 0ff24aacd85..232025692de 100644
--- a/code/modules/mob/living/carbon/human/human_species.dm
+++ b/code/modules/mob/living/carbon/human/human_species.dm
@@ -30,6 +30,9 @@
 /mob/living/carbon/human/dummy/mannequin/Life()
 	return // Because we never know
 
+/mob/living/carbon/human/dummy/mannequin/check_shadow()
+	return
+
 /mob/living/carbon/human/skrell/New(new_loc)
 	h_style = "Skrell Male Tentacles"
 	..(new_loc, SPECIES_SKRELL)
diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm
index a058910ad85..a950b9a88bc 100644
--- a/code/modules/mob/login.dm
+++ b/code/modules/mob/login.dm
@@ -41,12 +41,12 @@
 			params["name"] = real_name || name
 			world.Export("[config.external.login_export_addr]?[list2params(params)]", null, 1)
 
-/mob
-	var/client/my_client // Need to keep track of this ourselves, since by the time Logout() is called the client has already been nulled
-
 /mob/Login()
 	CAN_BE_REDEFINED(TRUE)
 	SHOULD_CALL_PARENT(TRUE)
+	if(!client)
+		return
+
 	GLOB.player_list |= src
 	update_Login_details()
 	world.update_status()
@@ -57,7 +57,8 @@
 
 	next_move = 1
 	set_sight(sight|SEE_SELF)
-	..()
+
+	client.statobj = src // DO NOT CALL PARENT HERE or BYOND will devour your soul
 
 	my_client = client
 
@@ -89,5 +90,18 @@
 	else
 		winset(src, null, "mainwindow.macro=macro hotkey_toggle.is-checked=false input.focus=true")
 
+	if(!skybox)
+		skybox = new(src)
+		skybox.owner = src
+	client.screen += skybox
+
+	if(ability_master)
+		ability_master.update_abilities(1, src)
+		ability_master.toggle_open(1)
+		if(mind && ability_master.spell_objects)
+			for(var/obj/screen/ability/spell/screen in ability_master.spell_objects)
+				var/datum/spell/S = screen.spell
+				mind.learned_spells |= S
+
 	SEND_GLOBAL_SIGNAL(SIGNAL_LOGGED_IN, src)
 	SEND_SIGNAL(src, SIGNAL_LOGGED_IN, src)
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index b5d81d2dc4b..3f2bc793466 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -8,10 +8,16 @@
 	remove_from_dead_mob_list()
 	remove_from_living_mob_list()
 	GLOB.player_list.Remove(src)
+	SSmobs.mob_list.Remove(src)
 
 	unset_machine()
+	//SStgui.force_close_all_windows(src) Needs further investigating
+
 	QDEL_NULL(hud_used)
 	QDEL_NULL(show_inventory)
+	QDEL_NULL(skybox)
+	QDEL_NULL(ability_master)
+	QDEL_NULL(shadow)
 
 	LAssailant = null
 	for(var/obj/item/grab/G in grabbed_by)
@@ -22,6 +28,10 @@
 	if(ability_master)
 		QDEL_NULL(ability_master)
 
+	if(click_handlers)
+		click_handlers.QdelClear()
+		QDEL_NULL(click_handlers)
+
 	remove_screen_obj_references()
 	if(client)
 		for(var/atom/movable/AM in client.screen)
diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm
index 656f7e176ab..edfc87ea8f7 100644
--- a/code/modules/mob/mob_defines.dm
+++ b/code/modules/mob/mob_defines.dm
@@ -33,6 +33,8 @@
 	var/lastKnownIP = null
 	var/computer_id = null
 
+	var/client/my_client // Need to keep track of this ourselves, since by the time Logout() is called the client has already been nulled
+
 	var/stat = 0 //Whether a mob is alive or dead. TODO: Move this to living - Nodrak
 
 	var/obj/screen/hands = null
@@ -89,6 +91,9 @@
 
 	var/bhunger = 0			//Carbon
 
+	var/last_pain_message
+	var/next_pain_time = 0
+
 	var/druggy = 0			//Carbon
 	var/confused = 0		//Carbon
 	var/sleeping = 0		//Carbon
diff --git a/code/modules/mob/new_player/login.dm b/code/modules/mob/new_player/login.dm
index a0400bf89c1..749b0123378 100644
--- a/code/modules/mob/new_player/login.dm
+++ b/code/modules/mob/new_player/login.dm
@@ -51,11 +51,10 @@
 		mind.set_current(src)
 
 	loc = null
-	new /obj/screen/splash(client, TRUE)
 	my_client = client
-	set_sight(sight|SEE_TURFS)
+	set_sight(sight|SEE_OBJS|SEE_TURFS)
 	GLOB.player_list |= src
-	CreateRenderers()
+	new /obj/screen/splash(client, TRUE)
 
 	if(!SScharacter_setup.initialized)
 		SScharacter_setup.newplayers_requiring_init += src
diff --git a/code/modules/mob/new_player/logout.dm b/code/modules/mob/new_player/logout.dm
index 31382ccd1a3..c09ba6ac61e 100644
--- a/code/modules/mob/new_player/logout.dm
+++ b/code/modules/mob/new_player/logout.dm
@@ -8,5 +8,6 @@
 	..()
 	if(!spawning)//Here so that if they are spawning and log out, the other procs can play out and they will have a mob to come back to.
 		key = null//We null their key before deleting the mob, so they are properly kicked out.
+		QDEL_NULL(mind) // We transfer mind during create_character(), so this should only happen if the new_player actually logs out w/out actually entering the round.
 		qdel(src)
 	return
diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index bdb1987d4fb..3340dac182f 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/new_player/new_player.dm
@@ -32,6 +32,10 @@
 
 	return INITIALIZE_HINT_NORMAL
 
+/mob/new_player/Destroy()
+	QDEL_NULL(panel)
+	return ..()
+
 /mob/new_player/proc/new_player_panel(forced = FALSE)
 	if(!SScharacter_setup.initialized && !forced)
 		return // Not ready yet.
@@ -552,6 +556,7 @@
 			mind.gen_relations_info = client.prefs.relations_info["general"]
 		mind.traits = client.prefs.traits.Copy()
 		mind.transfer_to(new_character)					//won't transfer key since the mind is not active
+		mind = null
 
 	new_character.apply_traits()
 	new_character.SetName(real_name)
diff --git a/code/modules/mob/observer/ghost/ghost.dm b/code/modules/mob/observer/ghost/ghost.dm
index ed0102ea06c..2bdc1bbc1d9 100644
--- a/code/modules/mob/observer/ghost/ghost.dm
+++ b/code/modules/mob/observer/ghost/ghost.dm
@@ -95,7 +95,7 @@ GLOBAL_LIST_EMPTY(ghost_sightless_images)
 
 	ghost_multitool = new(src)
 
-	GLOB.ghost_mob_list += src
+	GLOB.ghost_mob_list |= src
 
 	..()
 
diff --git a/code/modules/organs/_organ_setup.dm b/code/modules/mob/organs/_organ_setup.dm
similarity index 100%
rename from code/modules/organs/_organ_setup.dm
rename to code/modules/mob/organs/_organ_setup.dm
diff --git a/code/modules/organs/blood.dm b/code/modules/mob/organs/blood.dm
similarity index 100%
rename from code/modules/organs/blood.dm
rename to code/modules/mob/organs/blood.dm
diff --git a/code/modules/organs/external/_external.dm b/code/modules/mob/organs/external/_external.dm
similarity index 100%
rename from code/modules/organs/external/_external.dm
rename to code/modules/mob/organs/external/_external.dm
diff --git a/code/modules/organs/external/_external_damage.dm b/code/modules/mob/organs/external/_external_damage.dm
similarity index 100%
rename from code/modules/organs/external/_external_damage.dm
rename to code/modules/mob/organs/external/_external_damage.dm
diff --git a/code/modules/organs/external/_external_icons.dm b/code/modules/mob/organs/external/_external_icons.dm
similarity index 100%
rename from code/modules/organs/external/_external_icons.dm
rename to code/modules/mob/organs/external/_external_icons.dm
diff --git a/code/modules/organs/external/diona.dm b/code/modules/mob/organs/external/diona.dm
similarity index 100%
rename from code/modules/organs/external/diona.dm
rename to code/modules/mob/organs/external/diona.dm
diff --git a/code/modules/organs/external/head.dm b/code/modules/mob/organs/external/head.dm
similarity index 100%
rename from code/modules/organs/external/head.dm
rename to code/modules/mob/organs/external/head.dm
diff --git a/code/modules/organs/external/standard.dm b/code/modules/mob/organs/external/standard.dm
similarity index 100%
rename from code/modules/organs/external/standard.dm
rename to code/modules/mob/organs/external/standard.dm
diff --git a/code/modules/organs/external/stump.dm b/code/modules/mob/organs/external/stump.dm
similarity index 100%
rename from code/modules/organs/external/stump.dm
rename to code/modules/mob/organs/external/stump.dm
diff --git a/code/modules/organs/external/unbreakable.dm b/code/modules/mob/organs/external/unbreakable.dm
similarity index 100%
rename from code/modules/organs/external/unbreakable.dm
rename to code/modules/mob/organs/external/unbreakable.dm
diff --git a/code/modules/organs/external/vox.dm b/code/modules/mob/organs/external/vox.dm
similarity index 100%
rename from code/modules/organs/external/vox.dm
rename to code/modules/mob/organs/external/vox.dm
diff --git a/code/modules/organs/external/wounds/wound.dm b/code/modules/mob/organs/external/wounds/wound.dm
similarity index 100%
rename from code/modules/organs/external/wounds/wound.dm
rename to code/modules/mob/organs/external/wounds/wound.dm
diff --git a/code/modules/organs/external/wounds/wound_types.dm b/code/modules/mob/organs/external/wounds/wound_types.dm
similarity index 100%
rename from code/modules/organs/external/wounds/wound_types.dm
rename to code/modules/mob/organs/external/wounds/wound_types.dm
diff --git a/code/modules/organs/external/xenos.dm b/code/modules/mob/organs/external/xenos.dm
similarity index 100%
rename from code/modules/organs/external/xenos.dm
rename to code/modules/mob/organs/external/xenos.dm
diff --git a/code/modules/organs/internal/_internal.dm b/code/modules/mob/organs/internal/_internal.dm
similarity index 100%
rename from code/modules/organs/internal/_internal.dm
rename to code/modules/mob/organs/internal/_internal.dm
diff --git a/code/modules/organs/internal/appendix.dm b/code/modules/mob/organs/internal/appendix.dm
similarity index 100%
rename from code/modules/organs/internal/appendix.dm
rename to code/modules/mob/organs/internal/appendix.dm
diff --git a/code/modules/organs/internal/borer.dm b/code/modules/mob/organs/internal/borer.dm
similarity index 100%
rename from code/modules/organs/internal/borer.dm
rename to code/modules/mob/organs/internal/borer.dm
diff --git a/code/modules/organs/internal/brain.dm b/code/modules/mob/organs/internal/brain.dm
similarity index 100%
rename from code/modules/organs/internal/brain.dm
rename to code/modules/mob/organs/internal/brain.dm
diff --git a/code/modules/organs/internal/cerebrum.dm b/code/modules/mob/organs/internal/cerebrum.dm
similarity index 100%
rename from code/modules/organs/internal/cerebrum.dm
rename to code/modules/mob/organs/internal/cerebrum.dm
diff --git a/code/modules/organs/internal/embryo.dm b/code/modules/mob/organs/internal/embryo.dm
similarity index 100%
rename from code/modules/organs/internal/embryo.dm
rename to code/modules/mob/organs/internal/embryo.dm
diff --git a/code/modules/organs/internal/eyes.dm b/code/modules/mob/organs/internal/eyes.dm
similarity index 100%
rename from code/modules/organs/internal/eyes.dm
rename to code/modules/mob/organs/internal/eyes.dm
diff --git a/code/modules/organs/internal/golem.dm b/code/modules/mob/organs/internal/golem.dm
similarity index 100%
rename from code/modules/organs/internal/golem.dm
rename to code/modules/mob/organs/internal/golem.dm
diff --git a/code/modules/organs/internal/heart.dm b/code/modules/mob/organs/internal/heart.dm
similarity index 100%
rename from code/modules/organs/internal/heart.dm
rename to code/modules/mob/organs/internal/heart.dm
diff --git a/code/modules/organs/internal/kidneys.dm b/code/modules/mob/organs/internal/kidneys.dm
similarity index 100%
rename from code/modules/organs/internal/kidneys.dm
rename to code/modules/mob/organs/internal/kidneys.dm
diff --git a/code/modules/organs/internal/liver.dm b/code/modules/mob/organs/internal/liver.dm
similarity index 100%
rename from code/modules/organs/internal/liver.dm
rename to code/modules/mob/organs/internal/liver.dm
diff --git a/code/modules/organs/internal/lungs.dm b/code/modules/mob/organs/internal/lungs.dm
similarity index 100%
rename from code/modules/organs/internal/lungs.dm
rename to code/modules/mob/organs/internal/lungs.dm
diff --git a/code/modules/organs/internal/machine.dm b/code/modules/mob/organs/internal/machine.dm
similarity index 100%
rename from code/modules/organs/internal/machine.dm
rename to code/modules/mob/organs/internal/machine.dm
diff --git a/code/modules/organs/internal/man_machine_interface.dm b/code/modules/mob/organs/internal/man_machine_interface.dm
similarity index 100%
rename from code/modules/organs/internal/man_machine_interface.dm
rename to code/modules/mob/organs/internal/man_machine_interface.dm
diff --git a/code/modules/organs/internal/metroid_jelly_vessel.dm b/code/modules/mob/organs/internal/metroid_jelly_vessel.dm
similarity index 100%
rename from code/modules/organs/internal/metroid_jelly_vessel.dm
rename to code/modules/mob/organs/internal/metroid_jelly_vessel.dm
diff --git a/code/modules/organs/internal/posibrain.dm b/code/modules/mob/organs/internal/posibrain.dm
similarity index 100%
rename from code/modules/organs/internal/posibrain.dm
rename to code/modules/mob/organs/internal/posibrain.dm
diff --git a/code/modules/organs/internal/stack.dm b/code/modules/mob/organs/internal/stack.dm
similarity index 100%
rename from code/modules/organs/internal/stack.dm
rename to code/modules/mob/organs/internal/stack.dm
diff --git a/code/modules/organs/internal/stomach.dm b/code/modules/mob/organs/internal/stomach.dm
similarity index 100%
rename from code/modules/organs/internal/stomach.dm
rename to code/modules/mob/organs/internal/stomach.dm
diff --git a/code/modules/organs/internal/voicebox.dm b/code/modules/mob/organs/internal/voicebox.dm
similarity index 100%
rename from code/modules/organs/internal/voicebox.dm
rename to code/modules/mob/organs/internal/voicebox.dm
diff --git a/code/modules/organs/internal/vox.dm b/code/modules/mob/organs/internal/vox.dm
similarity index 100%
rename from code/modules/organs/internal/vox.dm
rename to code/modules/mob/organs/internal/vox.dm
diff --git a/code/modules/organs/organ.dm b/code/modules/mob/organs/organ.dm
similarity index 100%
rename from code/modules/organs/organ.dm
rename to code/modules/mob/organs/organ.dm
diff --git a/code/modules/organs/pain.dm b/code/modules/mob/organs/pain.dm
similarity index 98%
rename from code/modules/organs/pain.dm
rename to code/modules/mob/organs/pain.dm
index 02784bcac52..96b58da2871 100644
--- a/code/modules/organs/pain.dm
+++ b/code/modules/mob/organs/pain.dm
@@ -3,9 +3,6 @@
 		animate(pain, alpha = target, time = 15, easing = ELASTIC_EASING)
 		animate(pain, alpha = 0, time = 20)
 
-/mob/var/last_pain_message
-/mob/var/next_pain_time = 0
-
 // message is the custom message to be displayed
 // power decides how much painkillers will stop the message
 // force means it ignores anti-spam timer
diff --git a/code/modules/organs/robolimbs.dm b/code/modules/mob/organs/robolimbs.dm
similarity index 100%
rename from code/modules/organs/robolimbs.dm
rename to code/modules/mob/organs/robolimbs.dm
diff --git a/code/modules/modifier/modifier.dm b/code/modules/modifier/modifier.dm
index 09cd91f2c4f..7f77b3522ac 100644
--- a/code/modules/modifier/modifier.dm
+++ b/code/modules/modifier/modifier.dm
@@ -1,5 +1,3 @@
-#define MODIFIER_GENETIC	1	// Modifiers with this flag will be copied to mobs who get cloned.
-
 
 // This is a datum that tells the mob that something is affecting them.
 // The advantage of using this datum verses just setting a variable on the mob directly, is that there is no risk of two different procs overwriting
diff --git a/code/modules/multiz/zshadow.dm b/code/modules/multiz/zshadow.dm
index ad422513d5f..5b8b77791e9 100644
--- a/code/modules/multiz/zshadow.dm
+++ b/code/modules/multiz/zshadow.dm
@@ -27,12 +27,6 @@
 	. = ..() // I'm cautious about this, but its the right thing to do.
 	owner = L
 
-/mob/Destroy()
-	if(shadow)
-		qdel(shadow)
-		shadow = null
-	. = ..()
-
 /mob/zshadow/Destroy()
 	owner = null
 	. = ..()
diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm
index 141e4633c10..9cb72761534 100644
--- a/code/modules/recycling/disposal.dm
+++ b/code/modules/recycling/disposal.dm
@@ -669,7 +669,7 @@
 	return
 
 /obj/structure/disposalholder/Destroy()
-	qdel(gas)
+	QDEL_NULL(gas)
 	active = 0
 	return ..()
 
diff --git a/code/modules/spells/spells.dm b/code/modules/spells/spells.dm
index 6d4649de778..a77b0ec2869 100644
--- a/code/modules/spells/spells.dm
+++ b/code/modules/spells/spells.dm
@@ -16,17 +16,6 @@
 				if(SP_HOLDVAR)
 					statpanel(S.panel, "[S.holder_var_type] [S.holder_var_amount]", S.connected_button)
 
-//A fix for when a spell is created before a mob is created
-/mob/Login()
-	. = ..()
-	if(!mind)
-		return
-
-	if(ability_master?.spell_objects)
-		for(var/obj/screen/ability/spell/screen in ability_master.spell_objects)
-			var/datum/spell/S = screen.spell
-			mind.learned_spells |= S
-
 /proc/restore_spells(mob/H)
 	if(!H.mind?.learned_spells)
 		return