diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index e68543d509f..55e596b659f 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -188,7 +188,6 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
//the mouse ai will deactivate itself
client.mob = target_mouse
target_mouse.original_name = src.original_name
- target_mouse.voice_name = src.real_name
//reset admin verbs
if(client && client.holder && client.holder.state == 2)
diff --git a/code/modules/mob/simple_animal/mouse.dm b/code/modules/mob/simple_animal/mouse.dm
index 2c020f3c714..7cd83ab0fa9 100644
--- a/code/modules/mob/simple_animal/mouse.dm
+++ b/code/modules/mob/simple_animal/mouse.dm
@@ -56,3 +56,91 @@
/proc/ismouse(var/obj/O)
return istype(O,/mob/living/simple_animal/mouse)
+
+//copy paste from alien/larva, if that func is updated please update this one also
+/mob/living/simple_animal/mouse/verb/ventcrawl()
+ set name = "Crawl through Vent"
+ set desc = "Enter an air vent and crawl through the pipe system."
+ set category = "Mouse"
+
+// if(!istype(V,/obj/machinery/atmoalter/siphs/fullairsiphon/air_vent))
+// return
+ var/obj/machinery/atmospherics/unary/vent_pump/vent_found
+ var/welded = 0
+ for(var/obj/machinery/atmospherics/unary/vent_pump/v in range(1,src))
+ if(!v.welded)
+ vent_found = v
+ break
+ else
+ welded = 1
+ if(vent_found)
+ if(vent_found.network&&vent_found.network.normal_members.len)
+ var/list/vents = list()
+ for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in vent_found.network.normal_members)
+ if(temp_vent.loc == loc)
+ continue
+ vents.Add(temp_vent)
+ var/list/choices = list()
+ for(var/obj/machinery/atmospherics/unary/vent_pump/vent in vents)
+ if(vent.loc.z != loc.z)
+ continue
+ var/atom/a = get_turf(vent)
+ choices.Add(a.loc)
+ var/turf/startloc = loc
+ var/obj/selection = input("Select a destination.", "Duct System") in choices
+ var/selection_position = choices.Find(selection)
+ if(loc==startloc)
+ var/obj/target_vent = vents[selection_position]
+ if(target_vent)
+ for(var/mob/O in oviewers(src, null))
+ if ((O.client && !( O.blinded )))
+ O.show_message(text("[src] scrambles into the ventillation ducts!"), 1)
+ loc = target_vent.loc
+ else
+ src << "\blue You need to remain still while entering a vent."
+ else
+ src << "\blue This vent is not connected to anything."
+ else if(welded)
+ src << "\red That vent is welded."
+ else
+ src << "\blue You must be standing on or beside an air vent to enter it."
+ return
+
+//copy paste from alien/larva, if that func is updated please update this one alsoghost
+/mob/living/simple_animal/mouse/verb/hide()
+ set name = "Hide"
+ set desc = "Allows to hide beneath tables or certain items. Toggled on or off."
+ set category = "Mouse"
+
+ if (layer != TURF_LAYER+0.2)
+ layer = TURF_LAYER+0.2
+ src << text("\blue You are now hiding.")
+ for(var/mob/O in oviewers(src, null))
+ if ((O.client && !( O.blinded )))
+ O << text("[] scurries to the ground!", src)
+ else
+ layer = MOB_LAYER
+ src << text("\blue You have stopped hiding.")
+ for(var/mob/O in oviewers(src, null))
+ if ((O.client && !( O.blinded )))
+ O << text("[] slowly peaks up from the ground...", src)
+
+//make mice fit under tables etc? this was hacky, and not working
+/*
+/mob/living/simple_animal/mouse/Move(var/dir)
+
+ var/turf/target_turf = get_step(src,dir)
+ //CanReachThrough(src.loc, target_turf, src)
+ var/can_fit_under = 0
+ if(target_turf.ZCanPass(get_turf(src),1))
+ can_fit_under = 1
+
+ ..(dir)
+ if(can_fit_under)
+ src.loc = target_turf
+ for(var/d in cardinal)
+ var/turf/O = get_step(T,d)
+ //Simple pass check.
+ if(O.ZCanPass(T, 1) && !(O in open) && !(O in closed) && O in possibles)
+ open += O
+ */
\ No newline at end of file