anchor.diff:  		return GLOB.mob_config_movespeed_type_lookup[type]
   
   ///Go through the list of movespeed modifiers and calculate a final movespeed
  -/mob/proc/update_movespeed(resort = TRUE)
  -	if(resort)
  -		sort_movespeed_modlist()
  +/mob/proc/update_movespeed()
   	. = 0
   	var/list/conflict_tracker = list()
   	for(var/id in get_movespeed_modifiers())
  
positive.code: 	. = TRUE
  	if(M.multiplicative_slowdown)
  		. = FALSE
  
  /**
    * Sort the list of move speed modifiers
    *
    * Verifies it too. Sorts highest priority (first applied) to lowest priority (last applied)
    */
  /mob/proc/sort_movespeed_modlist()
  	if(!movespeed_modification)
  		return
  	var/list/assembled = list()
  	for(var/our_id in movespeed_modification)
  		var/datum/movespeed_modifier/M = movespeed_modification[our_id]
  		if(movespeed_data_null_check(M))
  			movespeed_modification -= our_id
  			continue
  		var/our_priority = M.priority
  		var/resolved = FALSE
  		for(var/their_id in assembled)
  			var/datum/movespeed_modifier/other = assembled[their_id]
  			if(other.priority < our_priority)
  				assembled.Insert(assembled.Find(their_id), our_id)
  				assembled[our_id] = M
  				resolved = TRUE
  				break
  		if(!resolved)
  			assembled[our_id] = M
  	movespeed_modification = assembled
  	UNSETEMPTY(movespeed_modification)
  
negative.code: 			type_or_datum = get_cached_movespeed_modifier(type_or_datum)
  		else
  			type_or_datum = new type_or_datum
  	var/datum/movespeed_modifier/existing = LAZYACCESS(movespeed_modification, type_or_datum.id)
  	if(existing)
  		if(existing == type_or_datum)		//same thing don't need to touch
  			return TRUE
  		oldpriority = existing.priority
  		remove_movespeed_modifier(existing, FALSE)
  	LAZYINITLIST(movespeed_modification)
  	var/listlen = length(movespeed_modification)
  	if(!listlen)
  		movespeed_modification[type_or_datum.id] = type_or_datum
  	else
  		var/left = 1
  		var/right = listlen
  		var/mid = (left + right) >> 1
  		var/datum/movespeed_modifier/curr
  		while(left < right)
  			var/id = movespeed_modification[mid]
  			curr = movespeed_modification[id]
  			if(curr.priority <= type_or_datum.priority)
  				left = mid + 1
  			else
  				right = mid
  			mid = (left + right) >> 1
  		curr = movespeed_modification[mid]
  		mid = curr.priority > type_or_datum.priority? mid : mid + 1
  		movespeed_modification.Insert(mid, type_or_datum.id)
  		movespeed_modification[type_or_datum.id] = type_or_datum
  	LAZYSET(movespeed_modification, type_or_datum.id, type_or_datum)
  	if(update)
  		update_movespeed()
  	return TRUE
  
  /// Remove a move speed modifier from a mob, whether static or variable.
  