SWF Movies definitions are created by reading an SWF stream. Gnash doesn't play SWF Movie definitions, but instances. So you can play the same SWF file (Movie definiton) using multiple instances.
The implementation of SWF parsing for a Movie definition is found in gnash::SWFMovieDefinition::read.
Note that movie_definition is also used as a base class for gnash::sprite_definition, which is a sub-movie defined in an SWF file. This seems to be the only reason to have a SWFMovieDefinition class, being the top-level definition of a movie (the one with a CharacterDictionary in it).