while investigating an issue involving sling:alias, i ended up manually adding the property using JCR API calls. this involved first adding the sling:ResourceAlias and i noticed that sling:alias can be both single or multi-valued according to the node type definition:
when setting multiple values for the sling:alias property, i found that ResourceMapper.getAllMappings only returns the first alias.
looking at the implementation in ResourceMapperImpl.loadAliasIfApplicable, it seems that line 216 (String alias = ResourceResolverControl.getProperty(current, ResourceResolverImpl.PROP_ALIAS);), is the culprit as call will in any case just return a single string (it calls getProperty(res, propName, String.class)).
as a consequence consumers of the ResourceMapper.getAllMappings method will not get a complete list of all aliases available.