i have found another way to do it without using /loadbuf (which wont wrap the same way as /echo -iN, ect.)

Code:
  var %rm = $right($rawmsg,$+(-,$pos($rawmsg,:,2)))
  bwrite temp.txt -1 $eval(%rm,0) 
  bread temp.txt 0 $lof(temp.txt) &temp
  breplace &temp 32 160
  tokenize 32 $replace($bvar(&temp,1-).text,$chr(160),$+(,$chr(32),))
  write -c temp.txt
 


it basically sets a variable for the message, then /bwrites the variable to a file. write would probably also work. also, the $eval(%rm,0) should write the text '%rm' to the file, but instead it writes it's contents. if i try to /bwrite $rawmsg or just the variable, the spacing is lost.

after it is written, the file is read into memory and /breplace is used to replace all spaces with $chr(160). in turn, $chr(160) is turned into ^b^b$chr(32)^b^b (to preserve the spacing without using different characters in place of a space) and tokenized so that $1- will contain the original text but with extra spacing included.

the only downside is that any $chr(160)'s in the original text would be converted to a space, but since $chr(160) is commonly used as a replacement for $chr(32), i am willing to accept this.