Why is there a need for a MAC address on top of IP address?
... but am pretty sure you could come up with a similar technique for MAC addresses.
IPv4 and Ethernet are two independent developments.
Therefore a MAC addresses is required for transferring data over Ethernet and a completely different IPv4 address is required for transferring data over IPv4.
Later layer-3 protocols like IPX or the first implementations of IPv6 actually use the MAC address as part of the layer-3 address - just like you would expect it.
(Current IPv6 implementations do no longer contain the MAC address in the IPv6 address any more because of privacy reasons: Web site providers shall not be able to track users.)
It is often said that one advantage of not using the MAC address as part of the layer-3 address is that the address of some server does not have to be changed if the server's NIC is exchanged.
However, you could also manually assign a MAC address (with the "local bit" set) to the server so the MAC address does not change if the server is replaced by a new one.
The fact that IP can also be used over serial lines and other technologies that do not have a MAC address is also not a compelling argument:
IPX can also be used over serial lines and similar technologies; RFC 1551 specifies that the serial ports are assigned a "dummy" MAC address (in the range 02:xx:xx:xx:xx:xx) in this case.
EDIT
that MAC address uniquely identifies a NIC on a global level
Not really.
I already mentioned the "local bit" that allows network administrators to assign a MAC address in a certain range to a NIC manually.
Multiple network administrators may assign the same MAC address to a computer in their network.
Let's say a packet comes to to the router doesn't the router check the IP address to see on which host connected to the network is the packet destined for? Why does a MAC address come into play?
In an Ethernet network each data "frame" (packet) must contain the MAC address of the destination computer in the Ethernet network.
If the IP packet is intended for a computer in another network, the "destination computer in the Ethernet network" is the router because the "final" destination computer is not part of the Ethernet network.
This means that the "destination MAC address" in the frame must be the MAC address of the router, not the MAC address of the final destination.
This is true for protocols like IPX or the "original" IPv6, too.
For such protocols each data packet contains two different "destination MAC addresses": The MAC address of the router (as Ethernet destination address) and the MAC address of the final destination computer (as part of the IPX or IPv6 destination address).
This would not be necessary if the entire Internet would be a single Ethernet network and switches (but not "L3 switches") would be used instead of routers.
Unfortunately, the size of an Ethernet network is limited for different reasons, so it would not be possible to build a network with millions of computers without routers.