the openvpn server does not know the MAC address of the clients ; in 'tap' mode it might know the mac address of the client 'tap' adapter but this is a random address. In 'tun' mode the MAC address of the client is not known at all.
You can ensure that a client gets a static IP address using the name of the client certificate; make sure each openvpn client has a unique certificate name (/CN=....) and then assign an IP address based on this. This can be done using either 'ifconfig-pool-persist ipp.txt' or it can be done using a client configuration file:
1) create a directory /etc/openvpn/ccd
2) configure the server to use
topology subnet
client-config-dir /etc/openvpn/ccd
3) inside this directory, create a file with the name of each client certificate and with
NO extension
4) the contents of this file would be
ifconfig-push 10.10.10.X 255.255.255.0
or whatever your 'server' IP range is.