semi-formal to me would give a few options depending on how 'kilty' you want to be. you could go for an Argyle (tweed or otherwise), or if you fancy standing out you could wear a jacobite shirt & coat - yes, i know some of you may say it's 'casual' but it's classed as formal enough here in Scotland that even grooms wear it at weddings.

... or you could wear the kilt with a shirt and tie with a v-neck pullover on top for in case it gets chilly.