Buongiorno a tutti

Ho un form di registrazione che prende nome e cognome.
Con queste stringhe sono riuscito a far si che un utente iscritto come PINCO PALLINO (oppure pinco pallino) venga automaticamente corretto in Pinco Pallino (maiuscola al nome e maiuscola al cognome, tutto il resto piccolo).

codice:
$Nome = ucfirst(strtolower($_POST['Nome']));
$Cognome = ucfirst(strtolower($_POST['Cognome']));
Il problema l'ho riscontrato con i cognomi distaccati tipo "Di Pietro" che mi corregge in "Di pietro", come potrei mai risolvere una cosa simile?

GRAZIE =)