Private use levels

How to tag levels in a building that’re only for maintenance and support and are not meant for ordinary users of the building, so that the level would not appear in a way that confuse users?

The level tag is for all/any building levels: it should not be regarded as identical to the floor number. Therefore if mapping maintenance floors you should include them in the sequence.

For instance my local hospital has 6 main floors: A-F with maintenance floors above each floor (I’m not absolutely sure about the top floor), these would be 0 for A, 1 for A services, 2, for B, 3 for B services etc. I’ve not actually mapped it this way, but have wondered about doing it from time to time, largely because the stairwells provide access to the maintenance floors and thus there are 4 flights between any pair of regular floors.

I think the situation for mezzanines etc. is documented on the wiki. Service floors are another case.

What I’m not sure about is if you only map the accessible floors but allow for the other floors in use of the level tag, and also behaviour of min_level and max_level.

I think x.5 could be more suitable in your case
But then, in cases like for instance floor 2.5 is open for public while floor 3.5 is not, what sort of tag can be used to make this distinction, so that some clients in the future can allow users to change the display according to what user need?