Routing tables for MAC addresses would need almost every single device with a MAC address listed. Routing to the Internet for IP is a single entry 0.0.0.0/0. For networks classes they break down as 10.0.0.0/8 172.16.0.0/16 and 192.168.0.0/24. Many of these can be aggregated like 172.16.0.0/12 and 192.168.0.0/16 further reducing the routing table size.
Routes are searched in reverse order in to the number of one bits in their mask. This makes routing to 192.168.100.0/24 work when there is a route for 192.168.0.0/16 and another for 0.0.0.0/0 (default route).
EDIT: Originally, the IP range was broken into several classes; A, B, and C being the most significant. The A class made up the first half of the address range, the B range the next quarter, and the C range the next eight of the range. These classes had masks of 8, 16, and 24 bits respectively. Later the strict usage of these masks was dropped and address allocation were done in a variety of sizes.
The size of the allocation is always a power of 2 and the lowest and highest address in each allocation are reserved. Each allocation will also have an address for a router. This is often the lowest or highest non-reserved address. The smallest practical allocation is a /30 address.
IPv6 uses the same form of allocation with a /64 the smallest allocation that can appear on the Internet. Typically, and ISP will be given much larger allocation, which is all the Internet routers would need to know about. Expected allocations are specified in the RFCs. The ISP would need to know how to route its own subnet, and what addresses to route to which interconnect routers. This is significantly simpler than knowing how to route each mac address.