IP layer addressing which is hierarchical routing works only if its inter-network routing. IP addressing doesnt work within the same network.
The reason is because:
1) legacy. MAC addresses were used primarily for addressing within the same network.
2) Lets say you try to identify a host by IP address. But before that packet passes to network layer, it will be discarded by the data link layer. So, the arrangement of layers is another reason.
Thats why even if we use IP, we need MAC addresses on top of it.