Dovresti cambiare la condizione di && con || perchè in quel modo tu gli dici se tutti i campi sono vuoti allora vai avanti invece devi dirgli se anche una delle seguenti variabili è vuota blocca tutto altrimenti prosegui pure

Codice PHP:
<?php 

/* Recupero i dati */
$nome $_POST['nome'];
$pass $_POST['pass'];
$mail $_POST['mail'];
$villo $_POST['villaggio'];
$sex $_POST['genere'];

/* Assegno variabile di avanzamento */
$ok false;

/* 1] Verifico che tutti i campi SONO compilati */
if (empty($nome) || empty($pass) || empty($mail) || empty($villo) || empty($sex)) 
{
    echo 
" Devi inserire tutti i campi per poter completare la registrazione ";
    
$ok false;
}

/* 1] Se tutti i campi NON SONO compilati */
else
{
    
$ok true;
}

    if ( 
$ok === true 
    {
        
/* 2] Verificio che l'e-mail sia valida */
        
$pos strpos($mail"@");
        
$pos2 strpos($mail" ");
            if (
$pos === false || $pos2 != false
            {
                echo 
"La tua mail non è valida";
            }    
        
/* 2] Verificio che la password sia min 4 caratteri e max 8 */
        
$lungpass strlen($pass);
            if (
$lungpass || $lungpass >)
            {
                echo 
"</br>" "La tua password non è valida";
            }
    }
    
    


?>