Username from e-mail

As far as i know there is no hook or filter to provide a custom User name for default registration process, however if you really want to modify it, you can alter the $_POST data.

here is the sample code:

add_action('wp_loaded', 'wpse_138736_filter_username');
function wpse_138736_filter_username(){
  //your code to extract username from email
  $_POST['user_login'] = 'test';
}

It kicks in before validation, and this way you’ll be able to provide custom username.