That's normal because it's not really a buffer, Bluetooth LE characteristics are usually restricted to 20 bytes by the protocol - it's what fits in the BLE packet - so unless you negotiate a larger MTU (larger packets than standard) between peers or use Long attributes you are restricted to that amount.
Neither of those extended techniques are currently supported.
@soren That typically happens when you open too many sockets, or try to re-open a socket which is already in use. Please ensure, that you close sockets when you do not need them any more.
A subtle pitfall is, that a soft reset does not close open sockets. You have to either push the reset button or call machine.reset().
The MAC address printed on your beacons is just a nicely formatted version in hexadecimal of the 6 byte address. What you get from Python are the actual 6 bytes themselves (hence the b' at the start) and when you print them they get turned into the correspond ASCII characters for that value (or \xYY if it's not a printable character)
You can use the binascii.hexlify function to turn each of those bytes into hexadecimal and make a string which is closer to what you have. For example your b'FS\xbd\x8c\xd2\x11'