Bueno, pues no habia visto la funcion 
mcrypt_create_iv() no la conocia jeje. 
Podrias crear el salt usando la primera y ultima letra del nombre de usuario, por ejemplo si es 
juancho usar "jo":  
 Código HTML:
 <form action="" method="post">
Nombre: <input type="text" name="nombre" />
Contraseña: <input type="password" name="contrasena" />
<button type="button" onclick="this.form.action='registro.php';this.form.submit()">Registrarse</button>
<button type="button" onclick="this.form.action='acceso.php';this.form.submit()">Acceder</button>
</form> 
 registro.php 
 Código PHP:
    <?php
$mysqli = new mysqli("localhost", "root", "", "pepitoGrillo");
// $mysqli->select_db("pepitoGrillo"); <- ???!
$nombre = trim($_POST['nombre']);
$salt = $nombre[0] . $nombre[strlen($nombre) - 1];
$contrasena = crypt($_POST['contrasena'], $salt);
if($mysqli->query("INSERT INTO usuarios (nombre,contrasena) VALUES ('$nombre','$contrasena')")){
    echo 'Registro OK etc., etc...';
    exit;
}
echo 'Error';
?>    
  acceso.php: 
 Código PHP:
    <?php
$mysqli = new mysqli("localhost", "root", "", "pepitoGrillo");
// $mysqli->select_db("pepitoGrillo"); <- ???!
$nombre = trim($_POST['nombre']);
$salt = $nombre[0] . $nombre[strlen($nombre) - 1];
 
// esta manera no es recomendable pero...
$contrasenaCrypt = $mysqli->query("SELECT contrasena FROM usuarios WHERE nombre='$nombre' LIMIT 1")->fetch_assoc()['contrasena'];
// ...niños, no lo hagan en casa ;)
 
if($contrasenaCrypt && crypt($_POST['contrasena'], $salt) == $contrasenaCrypt){
    echo 'Login OK etc., etc...';
    exit;
}
echo 'Error';
?>    
  Bueno espero te sirva de guia para hacer lo que requieres. 
Saludos!