I'm so with Billy Connollly here.
Traditionally, in Scotland, surnames - and mothers' surnames only - were given as firstnames to the second sons of families. They were only given to girls when there were no sons and/or when there was a very good chance of inheriting from an ancestor with that name. So, looking back, we can find very rare examples of girls called Lindsay, Maddox etc but these names were 'boys names' used exceptionally, for a particular purpose.
MacKenzie literally means 'son of Kenneth' so I really can't see why it's remotely suitable for a girl, Hollywood notwithstanding.
As previous posters have said, Mairi (pron. Marry) is the Gaelic form of Mary. The quintessential girls name for the past 2000 years. Very hard to think of anything MORE female.
Mhairi is technically not a name by itself - it's the vocative case (the form of the word used when speaking to someone). So it should only be used when saying 'Hello, Mairi' and such like. Sadly - because for a long while Gaelic was banned in Scottish schools - it's been used by people wishing to give their child a Gaelic name but not understanding the basic rules of Gaelic grammar.
James is a male name from the Bible - and so has had the male gender for more than 2000 years. Goodness know why people think the nickname Jamie - arguably, very much associated with posho Anglo-Scots men (tweeds, red trousers etc) until the past 50 years or so - is suitable for girls.
Sandy is indeed the Scottish male nickname of Alexander; Sandra is traditionally the female equivalent. Sandras might sometimes affectionately be called Sandy as a nickname, however.
But each to their own.