Retrieving list of MAC addresses per port using SNMP

For some homebrew network mapping tool I retrieve lists of MAC-to-port tables from switches and routers.
It is possible to get this list from most devices using:

snmpbulkwalk -v2c -c public [ipaddress] mib-2.17.4.3.1.2

This results is a list of (decimal) MAC addresses and interface indexes. The indexes can be mapped to ports
via some other queries.

In MikroTik routers, there is a complication. When every port is directly used in RouterOS, the indexes return
the proper value corresponding to the physical connection. However when a switch configuration is made, all
the MAC addresses are mapped to the master port of the switch. Apparently the information queried is
internal to RouterOS, not the information from the hardware switch chip.
But it is possible to obtain that table using the command:

/interface ethernet switch host print

Is there a way to read that info using SNMP?

Another thing: the above procedure appears to be randomly work or fail. On some routers it returns a nice list
of MAC addresses, on others it returns nothing or only a single entry.
What can be the reason for that?