anchor.diff:  	// BYOND Bug #2563917
   	// Construct text
   	var/static/regex/html_metachars = new(@"&[A-Za-z]{1,7};", "g")
  -	var/complete_text = "<span class='center maptext [extra_classes != null ? extra_classes.Join(" ") : ""]' style='color: [tgt_color]'>[text]</span>"
  +	var/complete_text = "<span class='center maptext [extra_classes.Join(" ")]' style='color: [tgt_color]'>[text]</span>"
   	var/mheight = WXH_TO_HEIGHT(owned_by.MeasureText(replacetext(complete_text, html_metachars, "m"), null, CHAT_MESSAGE_WIDTH))
   	approx_lines = max(1, mheight / CHAT_MESSAGE_APPROX_LHEIGHT)
   
  
positive.code:   * * extra_classes - Extra classes to apply to the span that holds the text
    * * lifespan - The lifespan of the message in deciseconds
    */
  /datum/chatmessage/New(text, atom/target, mob/owner, list/extra_classes = null, lifespan = CHAT_MESSAGE_LIFESPAN)
  	. = ..()
  	if (!istype(target))
  		CRASH("Invalid target given for chatmessage")
  
negative.code:   */
  /mob/proc/create_chat_message(atom/movable/speaker, datum/language/message_language, raw_message, list/spans, message_mode)
  	// Ensure the list we are using, if present, is a copy so we don't modify the list provided to us
  	spans = spans ? spans.Copy() : list()
  
  	// Check for virtual speakers (aka hearing a message through a radio)
  	var/atom/movable/originalSpeaker = speaker
  