Long story short, I tracked this all down to the "state" not being sent to PayPal standard with the rest of their billing address information, so PayPal viewed it as being in "invalid format" and left all those fields blank.
Here's what I did to fix it for 1.5.1:
In /catalog/controller/payment/pp_standard.php (around line 53), after
Code: Select all
$this->data['city'] = html_entity_decode($order_info['payment_city'], ENT_QUOTES, 'UTF-8');
Code: Select all
$this->data['state'] = html_entity_decode($order_info['payment_zone_code'], ENT_QUOTES, 'UTF-8');
Code: Select all
<input type="hidden" name="city" value="<?php echo $city; ?>" />
Code: Select all
<input type="hidden" name="state" value="<?php echo $state; ?>" />
Hopes this helps someone else!