Eloqua creating contacts with only an email address

We have about 14k contacts in Eloqua that do not have a first and last name on the contact record and are wondering how this is happening.

I tested this with an old contact. First I confirmed that this contact existed in our CRM (Salesforce). This contact had an Account, Contact and Opportunity in Salesforce. I then deleted his contact out of Eloqua. I then modified the opportunity object in Salesforce and then ran our syncs. Eloqua did create a contact but only populated the email address field.

I've set up a sync to get all opportunity data and link to the appropriate contact using Email Address as the matching field. I've also set up Field Mapping on the opportunity to map the first/last name of the opportunity to the first/last name fields on the contact.

I'm not quite sure what I've missed. Any help is appreciated!