Re: add_submenu_page & __FILE__ problem
__FILE__ gives the path like you are getting (see this documentation. I suggest just giving it the name of your plugin. Here’s what I use, for example:
add_submenu_page( 'bp-core.php', __( 'Achievements', 'dp-achievements' ),
__( 'Achievements', 'dp-achievements' ), 1, 'dp-achievements', 'dpa_admin' );
And I get a link that looks like http://example.com/wp-admin/admin.php?page=dp-achievements.