To create a custom post type without the editor, simply omit
'editor' in the
'supports' argument when you register the custom post type:
$args = array(
// only title field will be visible
'supports' => array( 'title' ),
// other args here...
register_post_type( 'cities', $args );
As for your meta data, that is a lot, but I wouldn't say it's too much. And you don't need to create 30 meta boxes for 30 pieces of data, you can render all of the fields in a single meta box.
Think about how you'll need to use that data later- If you need to query and sort on the data via a
meta_query, then it should be its own field. But if there's data that will only be displayed but not queried on, you can save that all as an array under a single key:
$data = array(
'street' => 'fake street',
'number' => 123,
'fruit' => 'pears'
update_post_meta( $post_id, 'some_data', $data );
WordPress will take care of converting the array to a storable value, and converting it back to an array when the data is loaded.