User account and Commerce addressfield bug
I modified the user.tokens.inc file by changing $user['name'] to $user['login-name'] and commented out a line and this seemed to fix the problem of the tokens, as the token isn't modified by the username value in $account.

case 'login-name':
//$name = format_username($account);
$replacements[$original] = $sanitize ? check_plain($name) : $name;
break;




However, as you can see, I still haven't solved the problem of the the username field in $account is being modified by commerce shipping and billing. The result is the same whether I set the field to "Full name" or "First name" and "Last name". Inspecting the addressfield module, I can't find the part where it modifies the $account username.