Scrivener MMD3 metadata, Memoir Abstract, and \abstract

As near as I can figure out, MMD3 takes the MMD3 metadata from Scrivener (not to be confused with Scrivener’s own metadata, Project > Meta-Data Settings), converts the key to all lowercase, eliminates all blanks in it, and uses the converted string to stick a \def towards the top of the LaTeX .tex file Scrivener generates.

Thus, for example, a metadata key-value pair like this in Scrivener:
Hello World: how are you?
becomes
\def\helloworld{how are you?}
in LaTeX.

For most things this works very well. But I ran into a problem with Memoir’s Abstract macros. Apparently Memoir looks for a macro named \abstract and automatically includes it in the abstract. So to continue the example above, suppose your LaTeX code also includes:
\def\abstract{Goodbye World}
\begin{abstract}
\helloworld
\end{abstract}
Your output will look something like:
Goodbye World
how are you?

Now used properly, this could be a good feature, except for three problems. First, having an \abstract macro causes a LaTeX error, which in turn prevents the abstract from having a heading.

Second, and because of this, a Scrivener scrivener has to kludge around the problem and can’t use a metadata key equal to “Abstract.” Instead, one can avoid this problem by using a key like “Abstract Content” in Scrivener and writing LaTeX code accordingly.

But “Abstract Content” is not intuitive and is easily forgotten. “Abstract” would be much better, but through experimentation I found that just including this key in the Scrivener MMD3 metadata breaks Memoir’s Abstract feature.

Third, one might want multiple abstracts in a project (e.g., synopses at the start of each chapter in a textbook), or one might want to reuse the abstract but customize it in some circumstances. For instance, in a report one might want a separate abstract page with keywords appended to the abstract’s text, but on the first page of content one might just want the abstract’s text.

Hence my questions. Has anyone else run into this? Has anyone found a better workaround? Can anyone suggest a better way to fix this?

Thanks.