Hmm - for the first question are you sure you've set up the userPrincipalName for your users? This is a user-defined attribute. You should be able to use ADSI Edit (or Apache Directory Studio, or any other LDAP client) to check the value. If it isn't set that would explain why you are unable to log in.
As to the second, one possibility is to set your userPrincipalName to the desired uid. This may result in duplication within your system. It seems like attributeMapUsername="uid"
should work but this throws an exception. Would love to hear from anybody who knows how to do this?