Is there a way to express anacrusis (number of ticks before the first bar) in a MIDI file?
Or put another way, is there a way to "start the metronome clock" later in the cycle than the first beat?
I'm afraid that the only answer I have for all your questions is no.
The SMF have no concept of "beat". You may infer, or deduce that information from the time signature meta-event (or analyzing the music), but that is not perfectly safe, nor easy. For instance, if you find that the rhythm of a piece is 4/4, then you can say that each beat is a quarter note. And if the rhythm is 3/8 then each beat is an eight note. Those are safe bets. But what if the time signature is 6/8 or 12/8? The beat may be an 8th note or a dotted quarter. The same happens with any compound rhythm. Or maybe the creator of the MIDI file forgot to write the time signature meta events at all, because it does not change the performance (it plays/sounds exactly the same having time signature meta-events or not).
There is not a "metronome" concept either in SMF. To synthesize a metronome you must solve the "beat" problem first, of course. Assuming that you are not the source of the MIDI file, and you want to know if the piece starts in anacrusis, you may think that if the first note-on event has a delta time different from zero. But this time gap may be there for some other reason. If you are the author of the MIDI file, then of course you can use some other meta-event to signal the start of the metronome. In this case, I would use a marker or cue-point meta event for that.