ListMail can do this type of thing to a degree, within link codes and custom text codes, but it hasn't been implemented into name message codes.
You might try a direct modification to admin.php
Search for this around line 680 or so:
case 'fname' :
if(!$fname && $data1) $fname = $data1;
and make it this:
case 'fname' :
if(!$fname && $data1) $fname = processmsg($usid,$data1);
Now, just enter your desired codes into the "default" name for your First Name message code.
Note that this modification would need to be performed every time you update your ListMail files.. Perhaps I will put in a check for exclamation points and run the message code processmsg() function on the data if one or more is found.
Let me know how it turns out.
Regards