It was designed to rapidly scan large networks, but works fine against single hosts. Nmap runs on all major computer operating systems, and official binary packages are. With nmap, you do scan for services at the IP layer (3) of the ISO/OSI model. Mac addresses are layer 2. This would not keep you from resolving mac addresses to IP addresses using. Arp -na and working your way from there, though.
Script to update nmap-mac-prefixes with latest entries from the IEEE OUI database
Nmap includes useful functionality of listing MAC Address Vendor name during scans, but my version listed many as 'Unknown'. The source of this information is a file called 'nmap-mac-prefixes', as discussed in Chapter 14 of the NMAP book. The upstream source is IEEE. Since NMAP doesn't seem to provide a way to update the MAC prefix file outside of normal application updates (and my version of nmap was up to date), I wrote a quick and dirty script to handle this for me.
First, here's example output with stock nmap-mac-prefixes as shipped with my version of nmap:
Update nmap-mac-prefixes:
The script doesn't make any changes to /usr/share/nmap/nmap-mac-prefixes, instead placing the updated version in /tmp so user can review changes before replacing. To replace:

If the script finds no difference between the latest OUI list and the one that nmap has, the output is:
Nmap For Mac High Sierra
Nmap output with updated MAC prefix file:
Nice, no more 'Unknown'.
Nmap
Here's the script: