A generalised construction would be:
{MERGEFIELD First_Name} {IF{MERGEFIELD Spouse_First_Name}= "" {MERGEFIELD Last_Name} {IF{MERGEFIELD Spouse_Last_Name}= {MERGEFIELD Last_Name} "and {MERGEFIELD Spouse_First_Name} {MERGEFIELD Last_Name}" {IF{MERGEFIELD Spouse_Last_Name}= "" "and {MERGEFIELD Spouse_First_Name} {MERGEFIELD Last_Name}" "{MERGEFIELD Last_Name} and {MERGEFIELD Spouse_First_Name} {MERGEFIELD Spouse_Last_Name}"}}}
Note: You need to have all of the spaces indicated in the field code.
For a macro to convert field text strings like the above to working field codes, see:
http://www.gmayor.com/export_field.htm#TextToField
In your case, you could substitute 'firstname' for 'First_Name' and 'firstname1' for 'Spouse_First_Name', but I'm not sure what 'optional1' and 'optional2' represent, so I can't comment on what you want there or whether they should be substituted for 'Last_Name' and 'Spouse_Last_Name'. As for the paragraph break, you should be able to insert one after each 'and' in the field code and format those and the paragraph break following the field with the attributes you require.