I tend to write the commit message as I go along and stage changes.
At the moment I use a scratch buffer for this, but it would be nicer if I could edit it in Magit from the start. Is this possible and if so how?
EDIT: I should say that I am a little unusual when it comes to commit messages: I write the problem that the commit solves rather than what has changed.
e.g. "get_prop("1") raises exception" rather than "cast strings to integers in get_prop"
Personally I think this is much more sensible than saying what you've done (which is evident in the the commit already).
Consequently I have to write the commit message first.