You can’t really eliminate usernames, they are an essential part of WordPress core. The best you could do was create a custom form and then save the data to the DB using the built-in fields.
For example, you could set the email they enter to equal both the email and the username field so both are the same.
I would suggest creating your own form and then saving the the database yourself instead of trying to fork the existing login form, which would most likely be a headache considering what you’re trying to do.
Or, unless you’re completely opposed to plugins, a combinations of Advanced Custom Fields and Theme My Login could probably take care of everything for you.