MAC is required for a couple of reasons, the biggest of which is that IP addresses are not (necessarily) unique.
Before a computer has an IP address, it typically requests one on the network by using a service called DHCP. At this point, the computer sends a broadcast message to the entire network saying “Hey, I don't have an IP address. My unique identifier is <MAC>. Can a DHCP server assign me one so that I can communicate on the network?”
In addition to that, routers and switches use MAC address tables to figure out what devices lie on what ports. This is used to intelligently move packets to the right port. It’s easier to use MAC address than IP address because a network card can have more then one IP address assigned to it at once, so it’s more efficient to store the MAC instead.
There are other uses too. It’s often used as a unique identifier for licensing purposes, and as part of a random seed for entropy purposes.
What you have read is incorrect. The router knows where to send incoming packets using MAC information, NOT the TCP/UDP port information. TCP/UDP port information is for identifying flows. It cannot identify machines. – qasdfdsaq – 2015-07-31T13:44:51.960