Even if you find and install a switch that can set an individual MAC address for each VLAN, how would the MAC address of that switch port ever be communicated to the MikroTik router? All you will ever see on the MikroTik router is the MAC address of a client that is connected to that switch ports, but never the MAC address of the switch itself!
I assume that your goal is to implement a LAN hotspot for the hotel guests? Then all you need is an 802.1q VLAN capable switch (MAC address per port/VLAN or not doesn't matter - not needed). Define one VLAN per hotel room on the switch, and assign a room's access port to that VLAN so there will be a one-to-one mapping between VLANs and hotel rooms.
Then create a tagged link holding all VLANs between the switch and our hotspot router. Finally define a bridge on the MikroTik router and add all VLAN interfaces as ports to the bridge. This would basically negate the effect of the VLANs and bring them all back together into one big broadcast domain, and more importantly allow direct client-to-client communication, which you probably do not want. To fix this you can add a bridge filtering rule such as
add chain=forward in-bridge=bridge1 out-bridge=bridge1 action=drop comment="" disabled=no
With this the bridge interface basically gets reduced to an aggregation of VLAN interfaces without the ability to actually bridge traffic between the ports. That fits our bill perfectly.
Lastly create a hotspot configuration on the bridge interface and set up a radius server for the hotspot.
This setup will make the hotel room's VLAN available in the attribute
NAS-Port-Id with each radius access request. You radius server and database can then check the VLAN information and derive a room number from that information.
--Tom